下面的代码在IE7中可以正常工作,但在Safari(5.0.5)中不能正常工作。如果可能的话,我想避免使用jQuery。目标是在iPad上使用此功能,但现在正在使用桌面Safari进行测试。请让我知道,如果你有任何想法让它在IE和Safari上都可以使用。
onclick()不在safari中工作
<div id="test" ></div>
<script>
function attachCallback(node) {
node.onclick = function() {
alert("coming here");
} ;
}
var retrybutton = document.createElement("img");
retrybutton.src = "test.png";
retrybutton.alt = "retry";
retrybutton.setAttribute("id","retrybutton");
attachCallback(retrybutton) ;
var a = document.getElementById("test");
a.appendChild(retrybutton);
// testing without using retrybutton
var test = document.getElementById("retrybutton");
test.click();
</script>
</body></html>
更新:讨论是否要与 “onmouseup” 或类似下面[东西去感谢安德烈!我不能添加注释]
if (Prototype.Browser.IE) {
document.getElementById("retrybutton").click();
} else { // from question link in comment
var event = document.createEvent("HTMLEvents");
event.initEvent("click", true, true);
document.getElementById('retrybutton').dispatchEvent(event);
}
看到这个问题http://stackoverflow.com/questions/5477305/plugin-to-make-the-method-click-cross-browser –