Я пытаюсь установить патч обезьяны XMLHttpRequest.prototype.open
для сайта интрасети, работающего в режиме совместимости с IE8, но он продолжает бросать SCRIPT438: Object doesn't support this property or method
. Странная вещь... если я сначала коснусь arguments
, то есть раскомментирую bar
, она работает просто отлично! Кто-нибудь знает, почему и если прикосновение к нему действительно решает проблему в 100% случаев?
var foo = window.XMLHttpRequest.prototype.open;
window.XMLHttpRequest.prototype.open = function() {
//var bar = arguments;
foo.apply(this, arguments);
console.log("OK");
}
Здесь IE9 в режиме IE8 modern.ie виртуальный скриншот с поиском Google Image, пытающимся open
запрограммировать прокрутку обезьяны.
Edit:
console.log(foo);
//console.log(foo.apply);
console.log(typeof foo);
console.log(foo instanceof Function);
Возвращает
LOG:
function open() {
[native code]
}
LOG: object
LOG: false
console.log(foo.apply)
выбрасывает "Object doesn't support this property or method"
.
Как ни странно, я не могу воспроизвести это в реальной виртуальной машине IE8 в любом режиме, который я пробовал, только в IE9, работающем в стандарте IE8.