http://jsfiddle.net/HVGre/1/ http://jsfiddle.net/HVGre/1/- 测试链接。
我的页面上有一个 html 链接,我需要能够动态单击该链接。这在 IE 中与 .click() 函数配合良好,但在 Firefox 中失败。我无法更改按钮的链接,因此这不是一个选项,它必须是一个 href。
<a href="javascript:alert('!');" id="myHrefLink">My HREF Link</a>
<script>
document.getElementById("myHrefLink").click();
</script>
Firefox 有没有好的解决方法?如果有任何可能性,我可以使用 jQuery。
我不打算为链接分配事件处理程序,我只需要使用 javascript 动态单击链接(无需使用鼠标手动执行此操作)。
我无法更改原始链接的功能。它必须保持原样。
EDIT:
Firefox 对此代码的问题似乎是该链接没有 onclick 事件,并且通过 href 引用了代码,或者不是 onclick (在此处的示例中,代码位于 href 上,在我的实际代码中,href设置为“#”,但是该链接在单击时会以某种方式触发其他操作,不要问我如何,这是与 plupload 工具的奇怪的 Flash 集成)。
<a href="javascript:alert('This works!');">Click me dynamically</a>
VS
<a href="#" onclick="alert('This works!');">Click me dynamically</a>
第二个示例是可靠的,当触发 click() 函数时,它可以在所有浏览器中工作,但是我需要这两个示例中的第一个可以在不动态或以其他方式更改链接的情况下工作。有什么巧妙的想法吗?
这里的行为取决于确切的 Firefox 版本:
- Firefox 4 及更早版本没有
click()
锚点上的方法根本不存在。
- Firefox 5和6确实有这样的方法,该方法会调度不受信任的点击事件,但它们不允许不受信任的事件触发链接的href。
- Firefox 7 及更高版本允许不受信任的单击事件触发链接。
因此,您的选择是等到 9 月底 Firefox 7 发布时,或者如果您需要支持早期版本而不使用.click()
来触发链接。得到.href
链接的位置,然后将相关窗口的位置设置为该字符串应该可以作为解决方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)