window.execScript在ie8中失败

时间:2013-05-10 18:06:59

标签: jquery ruby-on-rails ajax internet-explorer-8

我使用jquery 1.9.1在rails(3.2.11)上工作...在我的应用程序中我用javascript开发了一个聊天。

使用IE9一切正常,在IE8中调用

function refresh_contacts() {       
 url = $('#refresh_contacts_url').val()
 $.ajax(url)
}

我收到了主题中的错误...我试图找出问题并且它似乎是ajax调用(只是调用,即使调用函数上没有代码,所以我认为这是调用本身的人提出问题)......

引发错误的代码(由IE调试器指示)在jquery中(大约603行未缩小,版本1.9.1):

globalEval: function( data ) {
    if ( data && jQuery.trim( data ) ) {
        // We use execScript on Internet Explorer
        // We use an anonymous function so that context is window
        // rather than jQuery in Firefox
        ( window.execScript || function( data ) {
            window[ "eval" ].call( window, data );
        } )( data );
    }
},

我尝试了几种在网上找到的解决方法,例如使用async:false和使用XMLHttpRequest作弊,没有运气......

TNX, 法比奥

1 个答案:

答案 0 :(得分:0)

实际上,问题出在window[ "eval" ].call( window, data )所调用的代码指令中。

解决此问题的最佳方法是在Edge或IE中使用开发人员工具,并在有呼叫的线路上放置断点。然后,您将能够看到 data 变量中的内容。复制 data 的内容,并将其放入一些js验证程序中(例如esprima validator)。它应该显示IE出现问题的行。然后更正您的代码,就可以开始了!