【问题标题】:Google Chrome on iPad/iPhone doesn't open links after opening PDF in new tab在新选项卡中打开 PDF 后,iPad/iPhone 上的 Google Chrome 无法打开链接
【发布时间】:2015-05-06 23:25:44
【问题描述】:

我的网站在我的桌面上运行良好。当我使用 Google Chrome 在 iPad Air 或 iPhone 5S(均为 iOS8)上查看网站时,我遇到了问题。 Safari 工作正常。在一页上有一些指向 PDF 文件的链接,这些链接使用target="_blank" 在新页面中打开。这很好用。

关闭带有 PDF 的选项卡后,我返回原始网站,菜单似乎“冻结”了。我仍然可以在新选项卡中滚动和打开其他 PDF 文件,但导航菜单不再起作用。我无法转到其他页面,重新加载页面也无济于事。如果我单击/触摸菜单中的链接,它仍然会收到 click,因为我在 jQuery 中添加了此代码:

$("ul li a").click(function(){
    var hrefTest = $(this).attr('href');
    alert(hrefTest);
    alert("klik");
});

两个警报都显示了,链接的href 仍然可以。如果我将target="_blank" 添加到菜单链接,它们会在新选项卡中正常打开。显然这不是我想要的。

我的菜单没有什么花哨或奇怪的,但这是我的代码:

<ul>
    <li class="desktopFirst"><a href="/movement/">Movement</a></li>
    <li class="last"><a class="active" href="/product/">Product</a></li>
    <li class="mobileFirst"><a href="/">Overview</a></li>
</ul>

页面怎么可能仍然有效,但只有我的菜单链接没有转到他们的href 链接?如上所述,这只发生在 iPad 和 iPhone 上的 Google Chrome 上。任何帮助将不胜感激,谢谢。

编辑

该网站目前在this website 上运行。我无法弄清楚我的代码出了什么问题、错误或其他问题。

编辑 2

经过大量测试后,我才发现在关闭 PDF 的选项卡时导航不起作用。如果它仍然打开,一切正常。有人有什么想法吗?我在这里很绝望。

【问题讨论】:

  • 我遇到了完全相同的问题,我还注意到我无法刷新页面,也无法更改选项卡的 URL 或打开“历史记录”选项卡。就好像该选项卡卡在该 URL 上并且无法更改。 但是,如果我关闭选项卡并再次加载它,打开 PDF 并关闭 PDF 的选项卡一切正常,导航工作 100%。如果然后我用四指轻弹 iPad 并将 Chrome 从任务列表中滑开,重新运行它并导航回我的页面,问题又回来了。就像 Chrome 第一次在新选项卡中加载和关闭 PDF 时,父选项卡上的某些内容会中断,但只有一次。

标签: html ios google-chrome pdf menu


【解决方案1】:

试试这个,假设你使用带有href属性的p标签,类名是.link

$(".link").click(function(){
    window.open(this.getAttribute("href"), "_blank");
});

这使用了相同的想法,但这次使用了 javascript 提供的内置 window.open() 函数。这只是打开了按钮属性的链接,_blank 参数作为窗口名称。

要设置它的样式,使其看起来像一个链接,请在样式表中使用它:

.link{
    color: blue;                 //Set the color to blue.
    font-family: sans;           //Set to default text, change if necessary.
    text-decoration: underline;  //Underline the link.
}
.link:hover{
    cursor: pointer;             //Make the cursor a pointer when hovering the link.
}

这个方法的一些文档可以在这里找到:

  1. http://www.w3schools.com/jsref/met_win_open.asp
  2. https://developer.mozilla.org/en-US/docs/Web/API/Window/open
  3. http://www.javascript-coder.com/window-popup/javascript-window-open.phtml

【讨论】:

  • _blank 出现在 PDF 链接上,因此这只是一个 a 标记,如 &lt;a href="thelinktopdf" target="_blank"&gt;Text&lt;/a&gt;。如果我将代码放在该链接上,则页面会转到 PDF 文件并打开一个带有 PDF 的新选项卡,所以我有两个带有 PDF 的选项卡。
  • 尝试将其包装在 iOS 检测器中,通过检查用户代理是否有 iOS 字符串,因此它只对 iOS 执行此操作。
  • 我将它包装在一个 iOS 检测器中,但我最终得到了 2 个带有 PDF 的标签,并且没有网站。如果我关闭第二个选项卡并尝试在第一个选项卡上执行之前的操作,它将无法正常工作,因此它仍然“损坏”。
  • 尝试制作您自己的链接,在所有平台上使用该脚本,并且只使用带下划线的“p”标签。
  • 我不明白你的意思。能解释一下剧本吗?我只有 4 个链接到 PDF 文件的“a”标签。
猜你喜欢
  • 1970-01-01
  • 2019-05-04
  • 1970-01-01
  • 2018-11-01
  • 2017-02-07
  • 2012-04-25
  • 2019-05-26
  • 1970-01-01
  • 2017-01-05
相关资源
最近更新 更多