2017-07-18 93 views
1

我用下面的代码,所以一切都在Web应用程序中打开:如何在另一个选项卡中打开外部链接?

<script type="text/javascript"> 
var a=document.getElementsByTagName("a"); 
for(var i=0;i<a.length;i++) 
{ 
    a[i].onclick=function() 
    { 
     window.location=this.getAttribute("href"); 
     return false 
    } 
} 

然而,即使在桌面上,有target="_blank",仍然在同一个标​​签页中打开链接。如何在新选项卡中打开所有外部链接,同时仍将所有内部链接保留在同一个选项卡中。我已经找到了单一链接的解决方案,但我有太多需要手动更改。

注意:我在Apache上,所以配置文件的更改也可以工作。

+0

另一个好的帖子与各种解决方案:https://stackoverflow.com/questions/12235585/is-there-a-way-to-open-all-a-href-links-on-a-page-in-新窗口 –

+0

Apache是​​无关紧要的。这是所有标记/客户端。 – Capsule

回答

1

我设法从this post找到答案。 我只是把这个在我的头:

<script> 
// Mobile Safari in standalone mode 
if(("standalone" in window.navigator) && window.navigator.standalone){ 

    // If you want to prevent remote links in standalone web apps opening Mobile Safari, change 'remotes' to true 
    var noddy, remotes = false; 

    document.addEventListener('click', function(event) { 

     noddy = event.target; 

     // Bubble up until we hit link or top HTML element. Warning: BODY element is not compulsory so better to stop on HTML 
     while(noddy.nodeName !== "A" && noddy.nodeName !== "HTML") { 
      noddy = noddy.parentNode; 
     } 

     if('href' in noddy && noddy.href.indexOf('http') !== -1 && (noddy.href.indexOf(document.location.host) !== -1 || remotes)) 
     { 
      event.preventDefault(); 
      document.location.href = noddy.href; 
     } 

    },false); 
} 
</script> 

一切正常链接Web应用程序中打开,但与target="_blank"在新标签中打开移动和桌面,链接。

+0

你没有提到这是只有移动Safari浏览器的问题。 –

1

如果设置上,他们将在新标签中打开链接“目标”属性:

<script> 
var origin=window.location.origin; 
var a=document.getElementsByTagName("a"); 
for(var i=0;i<a.length;i++) 
{ 
    var link = a[i]; 
    if(link.href && link.href.indexOf(origin)!=0) 
    link.setAttribute("target", "_blank"); 
} 
</script> 

在WordPress管理,你可以去主题编辑器,并把这个代码在你的页脚。

+0

对不起,我是JavaScript新手,如何将此添加到我现有的代码中。 – NerdOfLinux

+0

您可以使用主题编辑器通过管理员将其添加到页脚。如果您的主题有放置自定义跟踪代码的地方,则可以将其添加到此处。 –

+0

它不起作用。我的问题是即使与目标属性的链接也不会在新标签中打开。 – NerdOfLinux

相关问题