столкнулся с проблемой при разработке этого небольшого пользовательского скрипта.Когда я хотел заблокировать каждый XMLHttpRequest
с работающего веб-сайта w с моим скриптом ничего не происходило (по крайней мере, с Chrome):
function main() {
// Override XHR.open with a custom function
window.XMLHttpRequest.prototype.open = function() {
// Nothing... so it's supposed to block every xhr.open() call
}
}
main();
То же самое при замене window
на unsafeWindow
.
Однако, когда я применил этот маленький трюк, все сработало как по маслу:
// No more call to main(), and:
var script = document.createElement("script");
script.textContent = "(" + main.toString() + ")();";
document.body.appendChild(script);
Каждый вызов xhr.open
заменяется моей пользовательской функцией, никакого AJAX.
Итак, я предполагаю, что элемент window
отличается при вызове main
из скрипта и при вызове из контейнер. Кто-нибудь может мне объяснить почему?