Javascript/jQuery : programmatically follow a link

标签 javascript html hyperlink

在 Javascript 代码中,我想以编程方式使浏览器跟随我页面上的链接。简单案例:

<a id="foo" href="mailto:somebody@example.com">something</a>

function goToBar() {
   $('#foo').trigger('follow');
}

这是假设,因为它实际上不起作用。不,触发 click不这样做。

我知道 window.locationwindow.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/

相关文章:

css - 我可以使 div 透明但可点击吗

javascript - Babel preset-env 未加载 Node 目标的顶级等待语法

android - 如何拦截点击TextView中的链接?

javascript - 在 AngularJS 中选择所有复选框

javascript - 如何在内容/风格有所变化的情况下为外部网站提供服务?

c# - 为什么无法在 asp.net 中获取正确的下拉列表值

html - Firefox 中的 ContentEditable 创建 2 个换行符而不是 1 个

browser - Sahi:无法在多个浏览器中执行浏览器中记录的脚本

javascript - 如何在JS中选择具有类的所有元素

javascript - 如何在数字周围制作静态按钮?