当前位置:  开发笔记 > 编程语言 > 正文

如何强制Javascript在HTML响应Ajax请求中执行

如何解决《如何强制Javascript在HTML响应Ajax请求中执行》经验,为你挑选了1个好方法。

我们正在使用Prototype来处理所有Ajax请求,为了简单起见,我们使用以下函数将HTML内容简单地呈现给相应的div:

function ajaxModify(controller, parameters, div_id)
{
    var div = $(div_id);

    var request = new Ajax.Request 
    (
        controller, 
        {
            method: "post",
            parameters: parameters,
            onSuccess: function(data) {
                div.innerHTML = data.responseText;
            },
            onFailure: function() {
                div.innerHTML = "Information Temporarily Unavailable";  
            }
        }
    );
}

但是,我偶尔需要在HTML响应中执行Javascript,并且此方法似乎无法执行此操作.

我试图将Ajax调用的函数列表保持在最低限度,原因有很多,所以如果有一种方法可以修改现有的函数而不会破坏当前正在使用的任何地方或者修改HTML响应的方法将导致任何嵌入式JavaScript执行,这将是伟大的.

值得注意的是,我已经尝试在函数中加入"evalJS:'force'"来查看它会做什么,而且它没有任何帮助.



1> Diodeus - Ja..:

参数是:

evalScripts:true

请注意,您应该使用Ajax.Updater,而不是Ajax.Request

请参阅:http://www.prototypejs.org/api/ajax/updater

如果响应头是:Ajax.Request将只处理JavaScript:

application/ecmascript,application/javascript,application/x-ecmascript,application/x-javascript,text/ecmascript,text/javascript,text/x-ecmascript,text/x-javascript

而Ajax.Updater将处理JS是evalScripts:true设置.Ajax.Request适用于数据传输,例如获取JSON响应.

由于您正在更新HTML,因此您应该使用Ajax.Updater.

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有