我從jQuery 1.4.2升級到1.6.2,現在出現錯誤(在IE中)。我的JavaScript得到的jQuery globalEval()
功能執行的頁面上升級到jQuery 1.6.2後,globalEval在嘗試執行JavaScript時拋出錯誤
// Evaluates a script in a global context
// Workarounds based on findings by Jim Driscoll
// http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context
globalEval: function(data) {
if (data && rnotwhite.test(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);
}
},
在IE瀏覽器中調用拋出異常:
"Error: Could not complete the operation due to error 80020101."
的數據得到執行參數是由<!-- -->
包圍頁面上的JavaScript變量
<!--
var id = \"ctrl90900\";
var url = \"myur.com/blah.html\";
-->
我使用IE9和jQuery 1.6.2不知道爲什麼這會導致錯誤。
如果您刪除評論,它是否正常工作?這不是有效的JavaScript。 – alex
在傳遞給'$ .globalEval()' - >'str = str.replace(/ <! - \ s *([\ s \ S] *?)\ s *)之前,在字符串上嘗試使用此正則表達式。 > /,'$ 1');'[jsFiddle](http://jsfiddle.net/alexdickson/GUf7Q/)。 – alex
@alex就是這樣。謝謝! –