なぜこれが起こったのかわかりませんが、これは不可能か、少なくとも非常に難しいと思います。
これはコードです:
function clonar (obj) {
var clonado = obj;
return obj;
}
var getter = clonar(document.getElementById);
var getting = clonar(getter)
document.__proto__.getElementById = function (element) {
return getting(element);
};
document.getElementById('wz-notification');
このスクリプトを実行すると、TypeError: Illegal invocation
. これが失敗する理由と、このエラーの原因がわかりません。少なくとも Chrome では、コンソールは何が失敗したのかを教えてくれません。getElementById
問題は、ネイティブ関数を上書きする新しい関数内からネイティブ関数コードを呼び出すことだと思いますgetElementById
。
よろしくお願いします!