質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

4回答

7079閲覧

target="_new"について

yomiko

総合スコア7

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

2グッド

0クリップ

投稿2016/03/08 07:35

リンクを
<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の仕様かと自分では考えているのですが…。

解消する方法をご存知の方、いらっしゃいましたら、ご教授頂けますと幸いです。
よろしくお願いします。

5o5o_wagon, dupont_kedama👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dupont_kedama

2016/03/08 08:07

ブラウザは複数試しましたか?試したブラウザを記載下さい。 また、①の後で②をクリックしたときに別のウィンドウが開きますか?
yomiko

2016/03/08 08:09

Chrome、Firefox、Operaで再現しました。 ①の後に②をクリックすると別のウィンドウが開きます。
guest

回答4

0

target="_new" はウィンドウに"_new"という名前をつけてるのでは無いでしょうか。
なので既に_newな名前のウィンドウがあればそのウィンドウが対象になる
(なければ新しく_newという名前のウィンドウを作成する)…という感じ。
「常に名前無しのウィンドウを新規に開く」ようにしたいなら"_blank"と指定してみてください。

投稿2016/03/08 07:56

HiroshiWatanabe

総合スコア2160

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yomiko

2016/03/08 08:12 編集

ありがとうございます。 すみません、説明が悪かったのですが、「常に名前無しのウィンドウを新規に開く」のではなく、開くウィンドウを一つにしたいのです。。。 ①→③と開くと_newの窓で開くのですが、①→②→③もしくは②→①等と、とFacebookページの後に開くと、 Facebookページの後に開いたページが別窓で表示されてしまいます。 出来たら、 元のページ リンク先 という風に、2窓にしたいのですが、 現状、Facebookページを開いてから開くと、 元のページ リンク先 リンク先 の3窓になってしまい、困っている、という事です。。。 説明が下手で申し訳ありません。
guest

0

ベストアンサー

「解消する方法」ではないですが、原因が分かったので。

確かにFacebookはウィンドウ名指定で開いても、開いた後で別のウィンドウ名に変わっていますね。
開発者ツールのコンソールでalert(window.name);してみるとわかります。
しかも毎回違う名前になっているのでウィンドウ名の特定は不可能と思われます。

投稿2016/03/08 08:32

dupont_kedama

総合スコア925

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yomiko

2016/03/08 08:36

なるほど。そういう事なのですね。 それですと解決には別のアプローチが必要になりそうですね。。。 大変勉強になりました! ご丁寧にありがとうございます。
dupont_kedama

2016/03/08 09:29

Facebookとしてのセキュリティ対策なんでしょうね。 私も面白いことを知ることができてよかったです。
guest

0

下記ページの『TARGET=”_BLANK” VS TARGET=”NEW”』の説明はご覧になりましたか?

http://www.seojapan.com/blog/target%E2%80%9D_blank%E2%80%9D-%E3%81%AE%E6%AD%A3%E3%81%97%E3%81%84%E4%BD%BF%E3%81%84%E6%96%B9%E8%AC%9B%E5%BA%A7

…ちなみに、私は target="_blank" しか使ったことがなく、 target="_new" というモノをこちらの質問で知りましたw

投稿2016/03/08 07:53

yunn

総合スコア144

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yomiko

2016/03/08 08:11

ご回答ありがとうございます。 リンク先は私も拝見しました。_newは正式な記述ではない、と言った様な事が書いてあったページもありました。 全部_blankにしようかなあ、とも考えたのですが、あまり複数ウィンドウになっても煩わしいかと考えています。。
guest

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
notable

総合スコア415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dupont_kedama

2016/03/08 09:22

クロスサイトでwindowRef.nameが取れないっぽいですねー
notable

2016/03/08 09:24

なるほど…そうですね… ご確認ありがとうございます!
notable

2016/03/09 13:53

ソースを変更しました。この方法ならいける気がします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問