今天就遇到這個問題,以防其他人遇到同樣的問題。var execBtn = document.createElement('input');execBtn.setAttribute("type", "button");execBtn.setAttribute("id", "execBtn");execBtn.setAttribute("value", "Execute");execBtn.setAttribute("onclick", "runCommand();");原來要讓IE在動態(tài)生成的元素上運行onclick,我們不能使用setAttribute。相反,我們需要使用包裝要運行的代碼的匿名函數(shù)在對象上設(shè)置onclick屬性。execBtn.onclick = function() { runCommand() };錯誤提示:你可以做execBtn.setAttribute("onclick", function() { runCommand() });但根據(jù)@scunliffe,它將以非標(biāo)準(zhǔn)模式在IE中中斷。你根本做不到execBtn.setAttribute("onclick", runCommand() ); 因為它會立即執(zhí)行,并將runCommand()的結(jié)果設(shè)置為onClick屬性值,所以您也無法執(zhí)行execBtn.setAttribute("onclick", runCommand);
為什么用setAttribute設(shè)置的onclick屬性無法在IE中工作?
溫溫醬
2019-11-14 14:13:25