Tôi đã nâng cấp từ jQuery 1.4.2 lên 1.6.2 và bây giờ tôi gặp lỗi (trong IE). Tôi có JavaScript trên trang đó được thực hiện bởi jQuery globalEval()
chức năngSau khi nâng cấp lên jQuery 1.6.2, globalEval ném lỗi khi cố gắng thực thi javascript trên trang
// 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);
}
},
Trong IE cuộc gọi ném ngoại lệ:
"Error: Could not complete the operation due to error 80020101."
Dữ liệu tham số mà có được thực hiện là javascript biến trên trang bao quanh bởi <!-- -->
<!--
var id = \"ctrl90900\";
var url = \"myur.com/blah.html\";
-->
Tôi đang sử dụng IE9 và jQuery 1.6.2 Không chắc chắn lý do tại sao điều này sẽ gây ra lỗi.
Tính năng này có hoạt động nếu bạn xóa nhận xét không? Nó không phải là JavaScript hợp lệ. – alex
Hãy thử sử dụng regex này trên chuỗi trước khi chuyển đến '$ .globalEval()' -> 'str = str.replace (/ /, '$ 1'); '[jsFiddle] (http://jsfiddle.net/alexdickson/GUf7Q/). – alex
@alex là nó. cảm ơn! –