我正在寫一個Chrome擴展,我在頁面上添加一個按鈕,然後向它添加一個onclick事件。由於我想添加更多的按鈕,我想要它動態..如何通過參數傳遞函數名稱以用作onclick eventlistener?
addAutoModButton('Auto-Moderate', 'moderate');
function addAutoModButton(name, onclickfunction) {
...
...
//creating a button and adding it
var modbtn = document.createElement("input");
modbtn.setAttribute('type','button');
modbtn.setAttribute('value',name);
title_header.appendChild(modbtn);
modbtn.addEventListener("click", window["onclickfunction"], false);
// thats what is not working
}
function moderate() {
//do some stuff
}
建議?
你似乎並沒有在任何地方定義'onclickfunction'。 –
未經測試,但您應該可以編寫'addAutoModButton('Auto-Moderate',moderate);',然後'modbtn.addEventListener(「click」,onclickfunction,false);'。函數只是javascript中的數據,所以你可以傳遞一個函數作爲參數(而不是函數的名字,函數本身)。 – Oliver
@Oliver:我建議加入這個答案。 – Cerbrus