• ベストアンサー

ドメインを指定してリンクを別窓で

jsの質問です。 aタグ内にtarget="_blank"を個々に設定するのが面倒なため、異なるドメインのサイトは別ウィンドウで立ち上げるようにするjsはどのように記述すればよいのでしょうか。 但し、すべての別ドメインを別ウィンドウで開くのではなく、別ウィンドウで開かないドメインが複数指定できるようにしたいです。 すぐ使えるサンプル等ありましたら教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

>複数指定 じゃ、こんな感じで複数の正規表現をかいてください <script> try{ document.addEventListener ('click',function(e){clickfunc(e)},true); }catch(e){ document.attachEvent('onclick',function(e){clickfunc(e)}); } function clickfunc(e){ var t = (e.srcElement || e.target); if(t.nodeName=="A"){ var r =[ new RegExp("^http:\/\/.*?yahoo\.co\.jp"), new RegExp("^http:\/\/.*?goo\.ne\.jp"), new RegExp("^http:\/\/.*?wikipedia\.org") ]; var flg=false; for(var i=0;i<r.length;i++){ if(t.href.match(r[i])){ flg=true; break; } } if(flg){ t.target="_self"; }else{ t.target="_blank"; } } //e.preventDefault(); } </script> <a href="http://www.yahoo.co.jp">y1</a> <a href="http://headlines.yahoo.co.jp/hl">y2</a> <a href="http://search.yahoo.co.jp/search?p=hoge">y3</a> <a href="http://ja.wikipedia.org">w1</a> <a href="http://ja.wikipedia.org/wiki/hoge">w2</a> <a href="http://www.google.co.jp/">g1</a> <a href="http://www.google.co.jp/search?q=hoge">g2</a>

ikehata_shin
質問者

お礼

ありがとうございました。 あなたは神です。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

たとえばこんな感じで、targetを指定してやったり、 場合によってはwindow.openで処理したりすればいいでしょう。 今回だとyahooは自windowにgoogleは他windowに なにも指定されていないのはデフォルトのtargetに <script> try{ document.addEventListener ('click',function(e){clickfunc(e)},true); }catch(e){ document.attachEvent('onclick',function(e){clickfunc(e)}); } function clickfunc(e){ var t = (e.srcElement || e.target); if(t.nodeName=="A"){ if(t.href.match(/^http:\/\/.*?yahoo\.co\.jp/)){ t.target="_self"; }else{ t.target="_blank"; } } //e.preventDefault(); } </script> <a href="http://www.yahoo.co.jp">y1</a> <a href="http://headlines.yahoo.co.jp/hl">y2</a> <a href="http://search.yahoo.co.jp/search?p=hoge">y3</a> <a href="http://www.google.co.jp/">g1</a> <a href="http://www.google.co.jp/search?q=hoge">g2</a>

ikehata_shin
質問者

補足

ご丁寧な解説ありがとうございます。できました。 で、URLを複数指定したいのですが、この部分にどのように追加するのでしょか。 ↓ if(t.href.match(/^http:\/\/.*?yahoo\.co\.jp/)){ 基本的な質問ですいません。

関連するQ&A

  • リンクを別ウィンドウで開く

    <target=" blank"> を使うと、リンク先を別ウィンドウで開く事が出来ますが、リンク一つ一つにタグを書かなくてはなりません。 スタイルシートで、一度に全てのリンクを別ウィンドウで開くように指定する事は可能ですか?

    • ベストアンサー
    • HTML
  • リンクを小さな別ウインドウで開く方法

    ホームページを作成しているのですがリンクをクリックしたときに小さな別ウインドウで開くやり方がわかりません。 <a href="http://ほにゃらら/" target="_blank">を使うと別のタグで開かれるだけで新しいウインドウが開かれません。 新しいウインドウでなおかつサイズを小さくしたいのですがいい方法はないでしょうか。

  • IE6.0で別ウィンドウへのリンクページがまったく開きません

    ホームページを作成しているのですが、 <a href="○○.html" target="_blank">と別ウィンドウで開くように指定してるのですが、 IE6.0.2800では、まったくリンク先のページが開きません。 target="_self"など他の指定は開くのですが。 また、IE5.0ではちゃんと別ウィンドウが開きます。 OSはwindows XP Home Edition Version2002 です。 ソースの、どの部分を直せばいいか、わかりません。 target="_blank"を有効にする方法、または他に別ウィンドウで開く方法がありましたら、教えてください。 仕事で作成しているのですが、全然わからなくて、困ってます。 ご回答、よろしくお願いします。

  • 一つのリンクに複数のURLを指定

    一つのリンクに複数のURLを指定できますでしょうか? 想像タグ <a href="http://www.google.co.jp/" & "http://www.yahoo.co.jp/" target="_blank">検索</a> JavaScriptでも 構いません。 ネットではこんなのが見つかりました。 Bridges  |  BridgeURL http://bridgeurl.com/

    • ベストアンサー
    • HTML
  • Firefoxでリンク先を新しいタブで開きたい

    ブックマークをクリックしたり、タグで<target=blank>の指定があるリンクの部分を、新しいウィンドウではな、新しいタブで開きたいのですが、どうしたらよいでしょうか?いちいち右クリック→新しいタブで開く と指定るするのは面倒です。

  • リンクを新しい窓で開きたい

    ページ内の外部リンクのみ、新窓で開きたいなと考え、『javascript 新窓』で検索した際に見つけた方法にID指定というものがありました。試してみたところ、一つ目のIDしか反映されませんでした。記述方法を変えれば、複数IDを指定することが可能なのでしょうか? ご指南お願い致します。 #HTML例 ###################### <p id="sample"> <a href="sample.html">サンプル1</a> </p> <p id="sample2"> <a href="sample2.html">サンプル2</a> </p> #script記述例 ###################### window.onload = getSrc; function getSrc() { var x = document.getElementById('sample','sample2').getElementsByTagName('a'); for (var i=0; i<x.length; i++) { x[i].onclick = function () { return openWin(this.href); } x[i].onkeypress = function () { return openWin(this.href); } } } function openWin(target) { open(target); return false; }

  • Animated Slideshow 別窓を指定

    Animated JavaScript Slideshowで大きいサイズの画像に 別ウィンドでリンクを使いたいのですが、やりかたがわかりません。 htmlにtarget="_blankを指定してもダメでした。 どなたか教えていただけますでしょうか? よろしくお願いします。 http://www.scriptiny.com/2008/12/javascript-slideshow/

  • 非同期のGAトラッキングコードで複数ドメインの計測

    こんにちは。 初めて質問させて頂きます。 表題の件でご質問させて下さい。 現在、非同期のGAトラッキングコードで複数ドメインの計測を色々実験中です。 ドメイン(A)とドメイン(B)にまたがる計測をする場合 カスタマイズしたGAトラッキングコードとリンク指定が必要と言うことは理解しています。 その中でドメイン(A)から、ドメイン(B)にリンクする際には・・・  onclick="_gaq.push(['_link',this.href]); return false;"> の設定が必要ですが・・・ それを別ウィンドウで開く設定にしたい場合 target="_blank" とかwindow.openなどの設定が必要です。 しかし、そのまま付け加えても計測に不都合が生じます。。。 旧Verのトラッキングコードであれば、下記の様な設定で可能と思いますが。。。 http://doruby.kbmj.com/katsuo_on_rails/20090907/googleAnalytics_onclick_target__blank_ 非同期VerのGAトラッキングコードで、 別ウィンドウで開く設定にして、正常に複数ドメイン計測を可能にする方法を探しています。 どなたか、その方法をご教授頂けませんか?? 宜しくお願い致します。

  • 一度に二つの別ウインドウへリンク

    よろしくお願いいたします。 リンク先を同時に二つ同じ箇所に埋め込むことは可能なのでしょうか? 色々と調べてみたのですが、なかなか見つけることが出来ません。 通常、<A href="○○.htm" target="_blank"> でリンク先を指定いたしますが、これを <A href="○○.htm" target="_blank"><A href="□□.htm" target="_blank">ほげほげ</A> のような形で、上記の例で言いますと、「ほげほげ」をクリックすることで、別ウインドウで「○○.htm」と「□□.htm」の両方を同時に表示させたいのです。   上手く説明できていないかもしれませんが、構図としてやりたい形はこのようなものです。 ご教授いただければと思います。 よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • iframeの中のページのリンクを全て別窓に

    iframe内で表示するページのリンクを全てtarget=_blankしたとの同じように、別窓で開くようにしたいんですが、 iframe内で表示するページは外部リンクで、編集する事ができないので、iframeを設定しているページで設定したいんですが、可能でしょうか? よろしくお願いしますm(_ _)m

    • ベストアンサー
    • HTML

専門家に質問してみよう