移动 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 不会下载日历邀请