リンクを
①<a href="http://nantoka" target="_new">別のサイトにリンク</a>
②<a href="http://facebookpage" target="_new">Facebookページへのリンク</a>
③<a href="/news.html" target="_new">サイト内へリンク</a>
の様にした時に③のリンクをクリックすると、target="_new"属性にしているにも関わらず、2つめのウィンドウが開いてしまいます。
Google検索しましたが、同様の事象が見つからず…
Facebookの仕様かと自分では考えているのですが…。
解消する方法をご存知の方、いらっしゃいましたら、ご教授頂けますと幸いです。
よろしくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/03/08 08:09
回答4件
0
target="_new" はウィンドウに"_new"という名前をつけてるのでは無いでしょうか。
なので既に_newな名前のウィンドウがあればそのウィンドウが対象になる
(なければ新しく_newという名前のウィンドウを作成する)…という感じ。
「常に名前無しのウィンドウを新規に開く」ようにしたいなら"_blank"と指定してみてください。
投稿2016/03/08 07:56
総合スコア2160
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/03/08 08:12 編集
0
ベストアンサー
「解消する方法」ではないですが、原因が分かったので。
確かにFacebookはウィンドウ名指定で開いても、開いた後で別のウィンドウ名に変わっていますね。
開発者ツールのコンソールでalert(window.name);
してみるとわかります。
しかも毎回違う名前になっているのでウィンドウ名の特定は不可能と思われます。
投稿2016/03/08 08:32
総合スコア925
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/03/08 08:36
2016/03/08 09:29
0
下記ページの『TARGET=”_BLANK” VS TARGET=”NEW”』の説明はご覧になりましたか?
…ちなみに、私は target="_blank" しか使ったことがなく、 target="_new" というモノをこちらの質問で知りましたw
投稿2016/03/08 07:53
総合スコア144
0
リンク先を通常のAタグではなくJavaScriptのwindow.open
で開くことで開いたウィンドウへの参照が取得できるので、window.name
に依存せずに自分が開いたウィンドウにアクセスできるようです。
これを利用すれば開いた後にwindow.name
が変更されても意図したウィンドウでリンク先を開くことができそうです。
理論的には、次のようなJavaScriptで実現できる気がします。
が、実環境で動かしてないので、動かないかもしれません…。
【2016/03/09更新】
ソースを変更しました。よく考えると開いたウィンドウの参照があるので、window.name
が取得できなくても直接window.location
を変更すれば目的とする動作になります。
ブラウザ依存などあるかもしれませんが、FirefoxとChromeでは動作しました。
HTML
1<!doctype html> 2<html> 3<head> 4 <title>sample</title> 5 <script src="https://code.jquery.com/jquery-2.2.1.min.js"></script> 6 <script> 7 $(function() { 8 var windowRef = null; 9 var windowOpen = function(href) { 10 if(windowRef && !windowRef.closed) { 11 windowRef.location = href; 12 } else { 13 windowRef = window.open(href); 14 } 15 return windowRef; 16 }; 17 18 var targetWindowOpen = function(e) { 19 e.preventDefault(); 20 windowOpen($(this).attr('href')); 21 }; 22 23 $('.targetWindowOpen').click(targetWindowOpen); 24 }); 25 </script> 26</head> 27<body> 28 <a href="test.html" class="targetWindowOpen">link1</a><br> 29 <a href="https://ja-jp.facebook.com/" class="targetWindowOpen">link2</a><br> 30 <a href="https://www.google.co.jp/" class="targetWindowOpen">link3</a><br> 31</body> 32</html>
投稿2016/03/08 08:57
編集2016/03/09 13:52総合スコア415
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/03/08 09:22
2016/03/08 09:24
2016/03/09 13:53
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。