href 链接不适用于 Safari 中的 onclick 事件

href links not working with onclick events in Safari

<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 中,单击 link 将在当前 window 中打开 Google 并在新的 tab/window 中打开 somepage.html

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

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

location.href只会改变当前window的URL。为了打开一个新标签或 window,最好使用 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。如果您想要那样,只需像这样切换 URLs:

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


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

旁注,我发现 Safari 允许用户处理他们想要的 windows 打开方式,无论是新的 window 还是标签页,不幸的是我们没有任何控制在那之上。