以下代码适用于IE7,但不适用于Safari(5.0.5)。如果可能的话,我想避免使用jQuery。目标是使此功能在iPad上运行,但现在正在使用桌面游戏进行测试。如果您有任何关于在IE和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>
更新:辩论是否与#34; onmouseup&#34;或类似下面[谢谢Andres !!我无法添加评论]
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);
}
答案 0 :(得分:6)
在Safari中,click()
方法(模拟鼠标单击)无法应用于<img>
。但是,它可以应用于<input type="image">
。你能用它吗?
答案 1 :(得分:4)
正如gilly3所说,您遇到的问题是您无法在click()
上致电<img>
。这并不意味着onclick
处理程序不起作用。如果你用鼠标点击图像,处理程序仍然会触发。
现在,如果您想模拟点击,this answer将为您提供执行此操作所需的一切。