我有一个href
,我正在发出一个弹出窗口,我想在我的身体onload
中激活它。我使用document.getElementbyId("myelement").click()
在IE中工作正常,但Firefox不支持它。我知道Firefox不支持.click()
,但我没有其他任何方法可以做到这一点。
您能否建议在IE和FF中使用的解决方法? 提前谢谢。
答案 0 :(得分:6)
您可以像Alsciende建议的那样,或者如果您需要事件对象,您可以使用dispatchEvent
来触发事件处理程序:
document.body.onload = function () {
var element = document.getElementById("element");
if ("click" in element)
element.click();
else if ("dispatchEvent" in element) {
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, window,
0, 0, 0, 0, 0, false, false, false, false, 0, null);
element.dispatchEvent(evt);
}
}
使用框架(例如jQuery)来处理这些类型的浏览器不一致性有时很有用。或多或少,jQuery中的相同代码将是:
$('#element').click();
答案 1 :(得分:2)
创建一个打开弹出窗口的函数,并在body onload处理程序以及链接onclick处理程序中使用此函数。
function openPopup() {
window.open("...");
return false;
}
<body onload="openPopup()">
...
<a id="myelement" href="#" onclick="openPopup()">...</a>
...
</body>
答案 2 :(得分:0)
只是为了帮助某人,我已经在很多代码中看到了这个,但不能保证它是否适用于您的情况,以下是我也尝试过的 -
'leftclick .divname':'_ functionname',
不确定。但这可能是使用了js必须提供的东西。我在骨干应用程序中使用它,该应用程序具有下划线js支持。