【问题标题】:href links not working with onclick events in Safarihref 链接不适用于 Safari 中的 onclick 事件
【发布时间】:2015-01-06 02:48:38
【问题描述】:
<script type="text/javascript">
function ref() {
    location.href = 'http://www.google.com';
}
</script>

<a target="_blank" href="/somepage.html" onclick="javascript:ref()">CLICK ME</a>

在 Chrome、FF 和 IE 中,单击该链接将在当前窗口中打开 Google,并在新选项卡/窗口中打开 somepage.html

但在 Safari 中,它只会在当前窗口中打开 Google,而不是其他任何东西。

如何让 Safari 复制其他浏览器?

【问题讨论】:

  • 可能不是解决方案,而是评论:它只是onclick="ref()" 没有javascript:
  • 感谢,已编辑,没有任何区别,但感谢您指出这一点。
  • 在Safari中使用开发者工具,控制台有没有报错?
  • 不,完全没有错误或警告。

标签: javascript html safari onclick


【解决方案1】:

location.href 只会改变当前窗口的 URL。为了打开一个新的标签或窗口,最好使用window.open。我专门在 Safari(和 Chrome)中对其进行了测试,并且在两种浏览器中都可以使用。

<a href="/somepage.html" onclick="javascript:ref()">CLICK ME</a>


<script type="text/javascript">
function ref() {
    window.open('http://www.google.com', '_blank');
}
</script>

按照您编写的方式,somepage.html 将在新选项卡中打开,当前页面将重定向到 google。如果你想要这样,只需像这样切换 URL:

<a href="www.google.com" onclick="javascript:ref()">CLICK ME</a>


<script type="text/javascript">
function ref() {
    window.open('/somepage.html', '_blank');
}
</script>

附带说明,我发现 Safari 允许用户处理他们希望打开窗口的方式,无论是新窗口还是选项卡,不幸的是我们无法控制它。

【讨论】:

  • 谢谢,但这也不会打开/somepage.html。我需要打开一个新选项卡并一键更改原始选项卡的 URL。
  • @MikeMeade 对此感到抱歉。我在上面更新了我的答案。这应该可以满足您的需要。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-22
  • 2016-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多