移动 Safari - Javascript 打开选项卡而不会失去对当前页面的关注

Posted

技术标签:

【中文标题】移动 Safari - Javascript 打开选项卡而不会失去对当前页面的关注【英文标题】:Mobile Safari - Javascript open tab without losing focus on current page 【发布时间】:2014-10-29 14:36:27 【问题描述】:

我目前正在开发一个网页,当访问该网页时,会在移动 Safari 中打开另外两个网页。

唯一的问题是,当新标签被加载时,浏览器会专注于最后一个要加载的标签。

我已尝试设置 Safari 设置“打开链接 -> 在后台”,但这似乎只是让您选择按住链接然后手动选择在后台打开链接(因此仍然专注于当前页)。

有没有办法在 Mobile Safari 中使用 javascript 自动打开一个网络链接而不会失去对当前网页的关注?

这是我当前使用的代码示例。

<script type="text/javascript" src="jquery-1.11.1.min.js"></script>
<html>
<head>
</head>
<body>
<a class="site" href="bbcNews/www.bbc.co.uk/news/index.html" target="_blank">Open Tabs</a>
    <script>
        $('a').each(function () 
            var clk = document.createEvent("MouseEvents");
            clk.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, true, 0, null);
            this.dispatchEvent(clk);
        );
    </script>
</body>
</html>    

【问题讨论】:

你不能在这里做你想做的事。我认为这主要是因为您使用 Javascript 打开其他选项卡,因此浏览器本身并没有真正将它们视为“链接”。在任何情况下,您都无法对网站代码进行任何修复。如果您真的需要打开两个页面,则不需要。 是的,这就是我最后得出的结论。感谢您的回复! 【参考方案1】:

我很长一段时间以来一直在使用这种“pop-unders”逻辑。 希望这对您有用: -基本思想是在新标签中打开页面本身,同时将“旧”标签/页面重定向到其他位置

  function popunder_redirect()
      window.open("#tab");
      window.location="http://redirecturl.com";
    

现在,如您所见,您的原始页面链接旁边有哈希链接 (#tab),您可以将其用作某种虚假历史记录,以通过检查页面加载来调整您的 javascript 或其他页面进度:

jQuery(document).ready(function()



var hashValue = window.location.hash;     //get hash value

//check for hash value

if (hashValue!=undefined && hashValue=="#tab")


      //display progressed page

else
     //display start page


);

【讨论】:

以上是关于移动 Safari - Javascript 打开选项卡而不会失去对当前页面的关注的主要内容,如果未能解决你的问题,请参考以下文章

移动 Safari - Javascript 打开选项卡而不会失去对当前页面的关注

如何在移动 Safari 中使用 javascript 突出显示文本选择

在移动 Safari 中按下后退按钮后,Javascript 停止在 iframe 中执行

移动 safari (iOS) 中的 javascript 不会下载日历邀请

移动 Safari - 使用 Javascript 关闭键盘

如何使用 JavaScript 单击 Safari 移动设备上的按钮?