Bru*_*uce 59 javascript firefox dom dhtml javascript-events
在IE中,我可以从JavaScript调用element.click() - 如何在Firefox中完成相同的任务?理想情况下,我希望有一些JavaScript可以跨浏览器同样运行,但如果有必要,我将为此提供不同的每浏览器JavaScript.
Iul*_*rei 71
该document.createEvent文件说:" 该createEvent方法已被弃用.使用事件构造来代替. "
所以你应该使用这种方法:
var clickEvent = new MouseEvent("click", {
"view": window,
"bubbles": true,
"cancelable": false
});
Run Code Online (Sandbox Code Playgroud)
并在这样的元素上触发它:
element.dispatchEvent(clickEvent);
Run Code Online (Sandbox Code Playgroud)
如图所示这里.
wil*_*ill 30
对于firefox链接似乎是"特殊".我能够使这个工作的唯一方法是使用MDN上描述的createEvent并调用initMouseEvent函数.即使这不完全,我不得不手动告诉浏览器打开链接...
var theEvent = document.createEvent("MouseEvent");
theEvent.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
var element = document.getElementById('link');
element.dispatchEvent(theEvent);
while (element)
{
if (element.tagName == "A" && element.href != "")
{
if (element.target == "_blank") { window.open(element.href, element.target); }
else { document.location = element.href; }
element = null;
}
else
{
element = element.parentElement;
}
}
Run Code Online (Sandbox Code Playgroud)
Jak*_*raw 22
使用jQuery可以做同样的事情,例如:
$("a").click();
Run Code Online (Sandbox Code Playgroud)
这将"点击"页面上的所有锚点.
您是否尝试实际关注链接或触发onclick?您可以使用以下内容触发onclick:
var link = document.getElementById(linkId);
link.onclick.call(link);
Run Code Online (Sandbox Code Playgroud)
这是一个跨浏览器工作函数(也可用于点击处理程序以外):
function eventFire(el, etype){
if (el.fireEvent) {
el.fireEvent('on' + etype);
} else {
var evObj = document.createEvent('Events');
evObj.initEvent(etype, true, false);
el.dispatchEvent(evObj);
}
}
Run Code Online (Sandbox Code Playgroud)