我试图从另一个问题实现以下答案:
https://stackoverflow.com/a/26469105/2402594
基本上我需要为jQuery函数添加额外的检查。以下代码在jQuery库中:
但我无法修改原始的jQuery,所以我在一个单独的文件中创建一个补丁。我正在做的是覆盖find函数并添加如下功能:
(function() {
var originalFind = jQuery.fn.find;
jQuery.fn.find = function () {
try {
document === document;
}
catch (err) {
document = window.document;
}
return originalFind.apply(this, arguments);
};
})();
该函数被正确覆盖,但是,当代码调用'find'时,我的'try'不会抛出任何异常,因为范围与Sizzle函数内的范围不同,因此原始问题仍然存在。
我也尝试复制所有的Sizzle代码,添加我的修改并将其分配给jQuery.fn.find,如上所述,但是范围问题仍然存在并且发生了一些崩溃。
我需要在文件达到以下检查之前设置“文档”,否则由于权限被拒绝而崩溃:
我如何共享范围,以便可以正确完成try / catch?它甚至可能吗?还有其他想法吗?
谢谢