在 Javascript 代码中,我想以编程方式使浏览器跟随我页面上的链接。简单案例:
<a id="foo" href="mailto:somebody@example.com">something</a>
function goToBar() {
$('#foo').trigger('follow');
}
这是假设,因为它实际上不起作用。不,触发 click
不这样做。
我知道 window.location
和 window.open
但这些在某些对我来说很重要的方面不同于本地链接跟踪:a) 在 <base />
存在的情况下元素,b) 在 mailto
的情况下网址。后者尤其重要。至少在 Firefox 中,调用 window.location.href = "mailto:somebody@example.com"
导致窗口的 unload
处理程序触发,而只需单击 mailto
据我所知,链接没有。
我正在寻找一种方法来触发浏览器对链接的默认处理,来自 Javascript 代码。
有这样的机制吗?也欢迎特定于工具包的答案(尤其是 Gecko)。
最佳答案
据我所知,window.location 完全符合您的要求,触发了浏览器的默认链接点击行为。
有些浏览器会在触发任何事件或更改实际 href 之前注意到协议(protocol)。
window.location = "mailto:somebody@example.com";
尝试下面提到的 fiddle 演示我得到以下结果:
- Chromium:使用按钮和链接触发
onbeforeunload
- Firefox 仅为按钮触发
onbeforeunload
- Safari:从不触发
onbeforeunload
- Opera:与 Safari 相同
因此,防止触发 unload
事件的一个好方法是在 beforeunload
中返回 false。
关于Javascript/jQuery : programmatically follow a link,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10906197/