Я пытаюсь реализовать следующий ответ из другого вопроса:
https://stackoverflow.com/a/26469105/2402594
В основном мне нужно добавить дополнительную проверку в функцию jQuery. Следующий код находится в библиотеке jQuery:
Но я не могу модифицировать оригинальный jQuery, поэтому создаю патч в отдельном файле. Что я делаю, так это переопределяю функцию поиска и добавляю функциональность следующим образом:
(function() {
var originalFind = jQuery.fn.find;
jQuery.fn.find = function () {
try {
document === document;
}
catch (err) {
document = window.document;
}
return originalFind.apply(this, arguments);
};
})();
Однако функция переопределяется правильно, когда код вызывает «найти», моя «попытка» не выдает никаких исключений, когда должна, потому что область действия отличается от той, что находится внутри функции Sizzle, поэтому исходная проблема все еще существует.
Я также попытался продублировать весь код Sizzle, добавив свою модификацию и назначив ее jQuery.fn.find, как это было сделано выше, однако проблема с областью действия все еще существует, и случаются некоторые сбои.
Мне нужно, чтобы «документ» был установлен до того, как он дойдет до следующей проверки, или он выйдет из строя из-за отказа в разрешении:
Как я могу поделиться областью, чтобы попытка/поймать могла быть выполнена правильно? Это вообще возможно? Любые другие идеи?
Спасибо