[英]greasemonkey adding onclick event to button
我在動態創建的按鈕上附加了onclick事件,但該事件未觸發。
var ind = location.href.indexOf('http://www.example.com/');
function init(){
alert('h');
}
if(ind != -1){
var elem = document.createElement("input");
elem.id ='btnGumb';
elem.value = 'Select Check box';
elem.type = 'button';
elem.style.position = 'fixed';
elem.style.left = '0px';
elem.style.top = '0px';
//this is not working
elem.setAttribute('onclick', 'init();');
//but alert is working: elem.setAttribute('onclick', 'alert("h");');
document.body.appendChild(elem);
}
使用addEventListener
。
elem.addEventListener('click', init, false);
您的init
函數未在內容頁面窗口中定義,因此您不能將函數名稱設置為字符串。
我沒有使用GreaseMonkey,但是我猜測您的腳本在其自己的作用域內,並且在腳本完成運行后會釋放其所有變量。 由於您是在此范圍內定義init的,然后在主頁上對其進行調用,因此在調用該函數時未定義。
您可以將整個函數放在onclick事件中或觸發回調:
if (elem.addEventListener) {
elem.addEventListener('click',init,false);
} else {
elem.attachEvent('onclick',init);
}
(attachEvent是特定於IE的)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.