我正在尝试从另一个问题中实现以下答案:
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?可能吗还有其他想法吗?
谢谢