• ベストアンサー

ブラウザによる表示の違い

<a href="リンク先" target=" top">の記述の場合、IEおよびChromeでは別の新しいタブにリンク先が表示されますが、Firefoxでは同じタブに表示されてしまいます。ブラウザによって表示の仕方が違うのでしょうか?

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

  • ベストアンサー
  • Gotthold
  • ベストアンサー率47% (396/832)
回答No.5

> <A HREF="フォルダーBBB.html" TARGET="_TOP"><font size="5">CCC</font></A> なるほど、理由が分かりました。 Firefox以外のブラウザはtarget属性の_top/_TOPの大小文字を区別しています。 なので、Firefox以外のブラウザは、 「_TOPという名称のフレーム/ウィンドウが存在しない場合は、 新規ウィンドウ(タブ)が開かれ、その新規ウィンドウを_TOPという名称にする。」 という動作をしています。 一方でfirefoxは_TOPを_topと同じ物だと解釈して 同じウィンドウでリンクを開くという動作をします。 (フレームを使っていない場合、_topは_selfと同じ動作をします。) > 作者の友人は別タブで開かせるつもりで作り 本来"_blank"を使用するべき場面で、 間違って"_top"を使い、さらに大文字の"_TOP"にしてしまったことで、 結果的に意図通りに動いているように見えたのでしょうね。 なお、HTMLの仕様ではFirefoxの方が正しい動作のようです。 Frames in HTML documents (ja) http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/present/frames.html#adef-target このページに | target = frame-target [CI] | この属性は、文書を開かせるフレームの名称を指定する。 と書かれていますが、CIは「大文字小文字の区別がない」という意味です。

dragon-man
質問者

お礼

有り難うございます。 なるほどそういうことですか。彼のHTMLコーディングは全面的に大文字を使っています。違いと言えばそれだけです。タグなどは大文字でもかまわないが、target属性は駄目なのですね。そもそも別タブに表示させるのに_blankではなく_topを使うのも間違いですね。 これ以外にもIEはおかしな事がいろいろあって、今では使っていません。FirefoxにしてからIEで悩まされたトラブルはなくなりました。やはりブラウザの本家本元(の末裔)なのですね。

その他の回答 (4)

  • Gotthold
  • ベストアンサー率47% (396/832)
回答No.4

<html> <head><title>test</title></head> <body><a href="https://www.google.co.jp" target="_top">_top</a></body> </html> このようなHTMLで試して見ましたが、 IE11、最新版のChrome、Firefoxの全てで同一タブで開かれました。 興味があるので現象を再現できるHTMLコードを見せてもらうことはできますか?(不要な部分は削った上で) それともこのHTMLでもそちらの環境では現象が再現しますか? > 開いたフレームにもほかのフレームにもblankと言う名称はつけていません。 target="blank"のリンクをクリックしたときにblankという名称のフレーム/ウィンドウが存在しない場合は、 新規ウィンドウ(タブ)が開かれ、その新規ウィンドウがblankという名称になります。

dragon-man
質問者

お礼

有り難うございます。 原文のコピーは下記の通りです。別フォルダーの中のhtmlファイルにリンクを張っています。フォルダ名、ファイル名、リンクを張った文章はそれぞれA、BBB、CCCと書き換えてあります。 <A HREF="フォルダーBBB.html" TARGET="_TOP"><font size="5">CCC</font></A> 作者の友人は別タブで開かせるつもりで作り、彼のPCではそのように動作したのに、小生のPCのFirefoxだけ同タブだったのでFirefoxがおかしいと言われました。 お示し頂いたコーディングを試してみましたが、小生のFirefoxでもIEでも同一タブでした。彼のコーディングと何がが違うのでしょう。 blankについては納得できました。ミスコーディングをしていたのに、怪我の功名で目的を達していたようです。これからは正しく書きます。

  • John_Papa
  • ベストアンサー率61% (1186/1936)
回答No.3

No.1です。お礼ありがとうございます。 target="blank"で別タブが開くのは_blank(ズバリその機能)でも、blankでも同じですが、開いたフレームにblankという名前が付いているか名無しかという違いがあるんではないですか? 更にtarget="blank"で開くと、blankという名前のフレームが既に開いているればそのフレームが上書きされ、_blankなら新しいタブが開くという違いがあります。 _topはフレーム(解除して)の上書きですので、別タブが開くなら誤動作です。 もしHTML4.01の!DOCTYPE宣言でコーディングされているなら、W3C仕様とMicrosoft独自仕様の争いの名残があるかもしれません。IE11以降はMicrosoft独自仕様(IE5互換モード)は切り捨てられた筈ですけど。使用ブラウザのバージョンによって異なる可能性があります。昔話ですが、同じIEでも!DOCTYPE宣言のちょっとした違い(ミスタイプ)で表示が大きく変わって困った記憶があります。 HTML4.01に於いて、予約語_top _parent _blank _selfは、<FRAMESET>で設定されたFRAMEに対しての機能です。 HTML4.01はタブブラウザが出現する以前の規格ですし、当初FRAME以外でtarget="〇〇"が使われる事は想定されていなかったと思います。しかし便利なのでFRAMESET FRAME自体が廃止されたHTML5でも残されています。つまり公式にFRAME以外で使用できるようになった訳です。 !DOCTYPE宣言無し、もしくは<!DOCTYPE html> で書かれていれば、今時のHTML5ブラウザでNo.2さんの回答のとおり、正しく動作する筈です。

dragon-man
質問者

お礼

有り難うございます。 >開いたフレームにblankという名前が付いているか名無しかという違いがあるんではないですか? 開いたフレームにもほかのフレームにもblankと言う名称はつけていません。 >blankという名前のフレームが既に開いているればそのフレームが上書きされ、_blankなら新しいタブが開くという違いがあります。 確かにその通りでした。アンダーバーなしのblankだとタブが使い回しされました。それにしてもblankと言う名称のフレームなどないのに、なぜアンダーバーなしのblankが動作したのでしょうね。 >同じIEでも!DOCTYPE宣言のちょっとした違い(ミスタイプ)で表示が大きく変わって困った記憶があります。 !DOCTYPE宣言は使っていませんが、ブラウザによってそういう違いが起きることはあるのですね。実はWebではなく友人がHTMLで作成したアルバムなのですが、友人は"_top"で別のタブに表示させる仕様だったのですが、小生のPC(firefox)では同じタブで開いてしまったので、この質問をしました。

  • Gotthold
  • ベストアンサー率47% (396/832)
回答No.2

> 正しくは"_top"です。それでもIE,Chromeは別タブに、Firefoxは同じタブに表示します。 _topはフレーム分割を解除して同じウィンドウ(タブ)でリンク先を表示します。 フレームを使っていないなら、同じウィンドウ(タブ)で開かれるだけだと思います。 IE,Firefox,Chromeで試したところ、同じタブで開かれました。 > いつもアンダーバーなしでtarget="blank"と書いていますが、アンダーバーなしでもIE,Crome,Firefoxのいずれも違いはなく、正しく別タブに表示されます。 > それで"_top"の場合はなぜ違いが出るのかと思い。(アンダーバーは省略しても大丈夫なようですよ) _blankとblankは動作が異なるので、アンダーバーが省略できるわけではありません。 _blankは必ず別タブで開きますが、blankの場合は既にtarget="blank"で開かれたタブが存在すると、そのタブが使い回しされます。

dragon-man
質問者

お礼

有り難うございます。 (アンダーバーなしのblankについては余計なことを言って質問の趣旨を曖昧にしました。これは忘れてもらって、) <a href="リンク先" target="_top">のターゲット表示に関して、なぜ小生の場合、IE、ChromeとFirefoxで表示タブが異なるのか、それをうかがいたかったのです。小生の使っているIEもFirefoxも最新バージョンです。

  • John_Papa
  • ベストアンサー率61% (1186/1936)
回答No.1

こんにちは。 <a href="リンク先" target=" top"> ですか? <a href="リンク先" target="_top"> でしょ。アンダーバー ティ オー ピイ ですよ。 <a href="リンク先" target=" top"> だと、topというフレームに表示しなさい、という事です。 Firefoxでは気を利かせてアンダーバーを補完して予約語の_topに置き換えている。 IEおよびChromeではルール通りtopという名の付いた新しいフレームを開くと考えられます。紛らわしいフレーム名を指定しなければ良いと思います。 参照:「target」属性について http://www.tohoho-web.com/html/attr/target.htm

dragon-man
質問者

お礼

有り難うございます。 失礼、文例を書き間違えました。正しくは"_top"です。それでもIE,Chromeは別タブに、Firefoxは同じタブに表示します。友人が作ったHTML文をブラウザ表示したらそうなったのでその違いを質問しました。 実は私のホームページでは、リンク先を新しい別タブに表示させるときは、いつもアンダーバーなしでtarget="blank"と書いていますが、アンダーバーなしでもIE,Crome,Firefoxのいずれも違いはなく、正しく別タブに表示されます。それで"_top"の場合はなぜ違いが出るのかと思い。(アンダーバーは省略しても大丈夫なようですよ)

関連するQ&A