有没有可能通过包含标签的Ajax.request来更新element的innerHTML?
<div><script type="text/javascript">javascript</script></div>我想用顶部的代码更新div的内容,而不是评估它。
谢谢你的帮助。
编辑:
好吧,所以这并不像应该的那么简单。
我有一个使用Ajax.request返回表单的主文件,如何在加载表单后使用主文件中的原型函数来操作数据?
编辑:
这是Ajax.request响应中的按钮
<button onclick="sendForm();" id="submitForm" type="button" class="button"><span><?php echo $this->__('Send email') ?></span></button>这是来自主文档的JS
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“
发布于 2011-02-06 06:15:56
好的,对不起。
我唯一需要做的就是在Ajax.Request之前声明var productSendtofriendForm ...需要在全球范围内创建一个。
发布于 2011-02-06 01:17:58
由于要更新现有元素的内容,因此既可以使用Ajax.Updater,也可以设置它的evalScripts选项。插入的脚本标记将在Ajax.Updater的作用域中求值,这意味着它可以访问全局函数,但不能访问启动更新的脚本的本地函数。
编辑:
您希望script标记中包含的函数存在于全局作用域中。而不是这样:
function somefunc() { ...你需要这样做:
somefunc = function() { ...而且绝对不要使用var,因为这会阻止somefunc成为全局变量。稍后,当单击一个按钮时,它的onclick事件将在somefunc现在所在的全局范围内执行。
发布于 2011-02-06 00:44:00
不错的文章about experiments with innerHtml and script tags。它不应该工作,但如果脚本标签有延迟属性,那么它将在IE下工作。
https://stackoverflow.com/questions/4908072
复制相似问题