我正在嘗試從另一個問題中實現以下答案: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?可能嗎?還有其他想法嗎?
重寫jQuery函數失去了'this'范圍
慕田峪7331174
2021-04-13 17:14:44