首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自Ajax.Request的<script>内部响应

来自Ajax.Request的<script>内部响应
EN

Stack Overflow用户
提问于 2011-02-06 00:37:04
回答 3查看 1.7K关注 0票数 0

有没有可能通过包含标签的Ajax.request来更新element的innerHTML?

代码语言:javascript
复制
<div><script type="text/javascript">javascript</script></div>

我想用顶部的代码更新div的内容,而不是评估它。

谢谢你的帮助。

编辑:

好吧,所以这并不像应该的那么简单。

我有一个使用Ajax.request返回表单的主文件,如何在加载表单后使用主文件中的原型函数来操作数据?

编辑:

这是Ajax.request响应中的按钮

代码语言:javascript
复制
<button onclick="sendForm();" id="submitForm" type="button" class="button"><span><?php echo $this->__('Send email') ?></span></button>

这是来自主文档的JS

代码语言:javascript
复制
new Ajax.Request('/path/another_path/index',
      {
        method:'post',
        evalJS: true,
        onSuccess: function(transport){
            $('sendfriend').update(transport.responseText);
            var productSendtofriendForm = new VarienForm('product_sendtofriend_form');
        }
      });

点击这个按钮后,我会看到"ReferenceError: Can't find variable: productSendtofriendForm“

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-02-06 06:15:56

好的,对不起。

我唯一需要做的就是在Ajax.Request之前声明var productSendtofriendForm ...需要在全球范围内创建一个。

票数 0
EN

Stack Overflow用户

发布于 2011-02-06 01:17:58

由于要更新现有元素的内容,因此既可以使用Ajax.Updater,也可以设置它的evalScripts选项。插入的脚本标记将在Ajax.Updater的作用域中求值,这意味着它可以访问全局函数,但不能访问启动更新的脚本的本地函数。

编辑:

您希望script标记中包含的函数存在于全局作用域中。而不是这样:

代码语言:javascript
复制
function somefunc() { ...

你需要这样做:

代码语言:javascript
复制
somefunc = function() { ...

而且绝对不要使用var,因为这会阻止somefunc成为全局变量。稍后,当单击一个按钮时,它的onclick事件将在somefunc现在所在的全局范围内执行。

票数 1
EN

Stack Overflow用户

发布于 2011-02-06 00:44:00

不错的文章about experiments with innerHtml and script tags。它不应该工作,但如果脚本标签有延迟属性,那么它将在IE下工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4908072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档