如何监控对象何时被分配onclick
个属性?
我想在分配处理程序时收到通知。
<input type="text" id="test">
<script>
var testObj = document.getElementById('test');
console.log(testObj.onclick); // return null
testObj.onclick = function () { // assign handler
console.log("Clicked !!");
}
console.log(testObj.onclick); // return function
</script>
答案 0 :(得分:0)
尝试使用:
testObj.addEventListener("click",function () {
console.log("Clicked !!");
});
答案 1 :(得分:0)
var target = document.getElementById('test');
// create an observer instance
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if ( mutation.type == "attributes" && mutation.attributeName == "onclick" )
{
console.log("onclick assigned");
}
});
});
// configuration of the observer:
var config = { attributes: true };
// pass in the target node, as well as the observer options
observer.observe(target, config);
答案 2 :(得分:0)
我认为在调用addEventListener
或element.onlcik
时会发生一个JavaScript触发的事件。
作为一种肮脏的解决方法,您可以调用另外一个自己的函数 通知/监控已添加的事件。
//Example
registerEvent(obj, eventname) {
//save this for monitoring purpose.
}
//Notify here...
registerEvent(testObjet, 'onclick');
testObj.onclick = function () { // assign handler
console.log("Clicked !!");
}