appendChild = function(message) {
console.log("intercepted!");
}
上記のコードを使用しても動作しないようです。appendChild()をオーバーライドするにはどうすればよいですか?
誰でも知っていますか?
appendChild = function(message) {
console.log("intercepted!");
}
上記のコードを使用しても動作しないようです。appendChild()をオーバーライドするにはどうすればよいですか?
誰でも知っていますか?
置き換えたいものはElement.prototype.appendChild
ですが、それはおそらく悪い考えです。
この例では、挿入された要素のテキストintercepted
を追加します。
var f = Element.prototype.appendChild;
Element.prototype.appendChild = function(){f.apply(this, arguments);arguments[0].innerHTML="!Intercepted!"; };
document.body.appendChild(document.createElement("div"));
ありがとう、私は8分であなたの答えを受け入れるでしょう。 – RedHotScalability
病気のネイティブ関数を上書きすることをお勧めしていますが、よりそれを行う場合は、として追加の要素を返すことを確認してくださいよく「appendChild」ネイティブ関数の戻り値を使用するコードの問題を防ぐために、次のようにします。
window.callbackFunc = function(elem, args) {
// write some logic here
}
window.f = Element.prototype.appendChild;
Element.prototype.appendChild = function() {
window.callbackFunc.call(this, arguments);
return window.f.apply(this, arguments);
};
+1大きな質問です。私は新しいことを学びました。 – Plynx
私はブックマークレットについてのマスター論文について書いているので、今私は弱点とルーグがそれを悪用できる方法について説明する必要があります。 – RedHotScalability