appendChild = function(message) {
console.log("intercepted!");
}
sử dụng mã ở trên dường như không hoạt động.Tôi làm cách nào để ghi đè appendChild()?
Có ai biết không?
appendChild = function(message) {
console.log("intercepted!");
}
sử dụng mã ở trên dường như không hoạt động.Tôi làm cách nào để ghi đè appendChild()?
Có ai biết không?
Những gì bạn có thể muốn thay thế là Element.prototype.appendChild
nhưng đó có thể là một ý tưởng tồi.
Ví dụ này cho biết thêm các văn bản intercepted
trong các yếu tố chèn vào:
var f = Element.prototype.appendChild;
Element.prototype.appendChild = function(){f.apply(this, arguments);arguments[0].innerHTML="!Intercepted!"; };
document.body.appendChild(document.createElement("div"));
cảm ơn, tôi sẽ chấp nhận câu trả lời của bạn sau 8 phút. – RedHotScalability
Người ta bị bệnh nên ghi đè lên các chức năng tự nhiên, nhưng nếu bạn làm điều đó hơn chắc chắn rằng bạn quay trở lại các yếu tố nối như cũng để ngăn các sự cố với mã sử dụng giá trị trả lại của hàm "appendChild" gốc:
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 Câu hỏi hay; Tôi đã học được điều gì đó mới mẻ. – Plynx
bởi vì tôi đang viết về luận văn thạc sĩ về bookmarklet, bây giờ tôi cần mô tả những điểm yếu của nó và làm thế nào các rouges có thể khai thác nó. – RedHotScalability