10

私が行っているプロジェクトのウェブサイトを作成しました。Web サイトのコンテンツには、アクセスできる外部 Web ページへのリンクがいくつかあります。その間、ユーザーがリンクの 1 つをクリックすると、指定されたリンクに移動し、現在のページに移動しなくなります。私がやりたかったのは、ユーザーがリンクをクリックしたときに、クリックされたリンクで指定された Web サイトが新しいタブに表示されるようにすることです。このようにして、ユーザーは現在のページにとどまり、新しいタブで他のページを表示することもできます。

私はインターネットを見て、これが役に立ちそうなものを見つけました:

function externalLinks()
{
  var anchors = document.getElementsByTagName("a");
  for (var i=0; i<anchors.length; i++)
  {
      var anchor = anchors[i];
      if(anchor.getAttribute("href"))
        anchor.target = "_blank";
  }
}
window.onload = externalLinks;

私が直面している問題は、私の Web サイトのナビゲーション バーにアンカー タグが含まれていることです。したがって、ユーザーがナビゲーション バーのリンクをクリックすると、新しいタブが開きます。ユーザーが私のウェブサイトのコンテンツ内のリンクをクリックした場合にのみ、これが発生することを望みます。したがって、ユーザーがナビゲーション バーのリンクをクリックしても、新しいタブは開かれず、指定されたリンク先に移動するだけです。

コンテンツ内のすべてのリンクにクラスを追加して getElementByClassName を使用しようとしましたが、それでも機能しませんでした

誰でもこれで私を助けることができます

4

4 に答える 4

28


HTMLを使用できます:

<a target="_blank" href="YourAmazingURL">Click here for Amazing URL</a>

もう一つの例:

<a target="_blank" href="http://www.google.com/">Google</a>

これは target 属性を利用します。

target 属性の詳細: http://www.w3schools.com/tags/att_a_target.asp また: http://www.w3schools.com/html/html_links.asp

編集:

XHTML の場合は、次のようにします。

<a href="YourAmazingURL" onclick="window.open(this.href,'_blank');return false;">Click here for Amazing URL</a>

または、もう一度:

<a href="http://www.google.com/" onclick="window.open(this.href,'_blank');return false;">Google</a>

于 2012-04-23T01:57:46.197 に答える
2

これには JavaScript を使用する必要がありますか?

そうでない場合は、属性を HTML の a タグに直接追加できます。

例えば:<a href="http://www.google.co.uk" target="_blank">Google</a>

JavaScriptが必要ない場合は、おそらくそれがより簡単な方法です。

于 2012-04-23T01:54:57.433 に答える
1

JavaScript に依存する必要がある場合:

基本的には、条件を変更するだけですif(アンカー リンクが外部の場所を指しているかどうかを確認するため)。

したがって、代わりにif(anchor.getAttribute("href"))を使用しますif(anchor.getAttribute("href") && anchor.hostname!==location.hostname)

コードを少しクリーンアップすると、関数は次のようになります。

function externalLinks() {
  for(var c = document.getElementsByTagName("a"), a = 0;a < c.length;a++) {
    var b = c[a];
    b.getAttribute("href") && b.hostname !== location.hostname && (b.target = "_blank")
  }
}
;
externalLinks();
于 2012-10-30T09:00:16.960 に答える
-1

あなたが使いたいdocument.getElementById("theidgoeshere");

これを行うには、次のようにリンクに id 属性を設定します。

<a href="www.google.com" id="theidgoeshere">Google</a>

次に、あなたのJavaScriptで

  var anchor = document.getElementById("theidgoeshere");
  if(anchor.getAttribute("href"))
      anchor.target = "_blank";

また、javascript なしで実行したい場合があることに注意してください。target="_blank"アンカータグを入れるだけです。

于 2012-04-23T01:55:27.310 に答える