2016-12-31 3 views
-2

を通じて新しいタブで開くには、ページ上のすべてのリンクを再書き込み、私は次のコードを使用しページ非クリッカブル内のすべてのリンクを作成するにはJavaScriptを

<html> 
<body> 
<script> 
document.body.onclick=function(e){ 
e.preventDefault(); 
return false; 
} 
</script> 
<a href="http://www.google.com">Link 1</a> 
<a href="http://www.ebay.com">Link 2</a> 
</body> 
</html> 

を今、私はリンクがオープンにすることを知っています私たちが使用できる新しいタブで:

1)最初にそれらを非クリッカブル行った後、javascriptを介してすべてのリンクがクリック可能行います

target="_blank" 

しかし、それはここでは問題ではない、問題はどのように私がすることができ、あります上記のように。

2)javascriptを使用してページ内のすべてのURLを書き直し、新しいタブで開きます。JavaScriptを使用して、HTMLページのすべてのリンクに必要なtarget="_blank"属性を追加するにはどうすればよいですか?

ありがとうございました!

答えて

2

<html> 
 
<body> 
 
<script> 
 
document.body.onclick=function(e){ 
 
    e.preventDefault(); 
 
    return false; 
 
} 
 
window.onload=function() { 
 
    document.body.onclick=null; 
 
    var links = document.querySelectorAll("a"); 
 
    for (var i=0;i<links.length;i++) { 
 
    links[i].target="_blank"; 
 
    } 
 
} 
 
</script> 
 
<a href="http://www.google.com">Link 1</a> 
 
<a href="http://www.ebay.com">Link 2</a> 
 
</body> 
 
</html

やjQueryのでattrを使用します:この部分は、このページ内の別のコードから使用された

$("body").on("click",function(e){ 
    e.preventDefault(); 
    return false; // not necessary 
}); 
$(function() { 
    $("body").off("click"); 
    $("a").attr("target")="_blank"; 
}) 
0

それはこのように簡単です:

var aList = document.getElementsByTagName('a'); 
for(var i = 0 ; i < aList.length; i++){ 
    aList[i].setAttribute('target', '_blank'); 
} 

しかし、あなたは文書の最後にそれを配置する必要があります。

しかし、あなたは、ドキュメントの最後に、それはになりたいとも、それはあなたがこのような何かを行うことができ、すべてのブラウザ間で動作しない場合:

var DOMReady = function(a,b,c){b=document,c='addEventListener';b[c]?b[c]('DOMContentLoaded',a):window.attachEvent('onload',a)} 

DOMReady(function() { 
    var aList = document.getElementsByTagName('a'); 
    for(var i = 0 ; i < aList.length; i++){ 
    aList[i].setAttribute('target', '_blank'); 
    } 
}); 

DOMReady機能がときのためにあります文書構造はdomで形作られました。 Tiny Cross Browser DOM Ready

0

だけ追加します。

$(function(){ 
    $('a').attr('target', '_blank'); 
}); 

の代わりに

document.body.onclick=function(e){ 
    e.preventDefault(); 
    return false; 
} 

ただし、そうするにはjQueryを組み込む必要があることに注意してください。

0

あなたはリンクのクリックを有効にすることができれば、あなたはページ<head>にこのタグを追加することにより、デフォルトのターゲットを変更することができます:

<base target="_blank" /> 
関連する問題