プロが教える店舗&オフィスのセキュリティ対策術

XHTML 1.1 でサイトを作成しています。
1.1ではaタグの"target"が禁止になりましたが、新規ウインドウで開きたい場合は、JavaScriptしかないのでしょうか?
JavaScriptで作成すると未対応やOFFにしているブラウザでリンクが反応しなくなると思うのですが…。

href属性にURLを指定しつつ、JavaScriptに対応しているブラウザはJavaScriptで新規ウインドウを開くようにするにはどうしたらよいのでしょうか?(なるべく未対応、OFFにも新規ウインドウで開かせたいですが、無理であれば同一ウインドウでもOK)

また、何か別の方法がありましたらご教示してください。

A 回答 (2件)

うーん、何というか……。


a 要素の target 属性が廃止されたのはそれが HTML 的に「よろしくない」からで……。
質問文の後半にあるようにスクリプトが動かない環境でもうまくいくようなやり方もあるにはありますが、わざわざスクリプトを使うぐらいなら 1.0 Transitional で target="_blank" を書いたほうが楽じゃないですか? どうせよろしくないことをしていることに変わりはないんだから。

XHTML 1.1 を使うということは よろしくないことはしないということとイコールですよ。リンクを新しい窓で開きたいという発想が出てきた時点で、あなたが作ろうとしているものは既に XHTML 1.1 文書ではなくなっていると思います。
    • good
    • 0
この回答へのお礼

なるほど、新規ウインドウという考えが良くないのですね。いろいろ検索していたら、「ウインドウを開くのは見る側の勝手だ」的な意見もあり、開かせない方がいいと判断しました。

勉強になりました。

お礼日時:2006/02/28 12:02

結果重視ですよね。


"target"が禁止されているのはW3Cの話ですよね。
targetを入れればブラウザは反応しませんか?

MIME タイプがapplication/xhtml+xmlでもエラーにはならないと思いますよ。
MIME タイプがtext/htmlならブラウザはHTMLとして読んでいるんじゃないかと思いますけど・・・
IE6で見れるくらいですから。

ですから、別ウインドウで開く属性が非推奨にも関わらず別ウインドウで開きたいなら、素直にtarget属性を使うのが良いでしょう。
    • good
    • 0
この回答へのお礼

結果重視ならUKY氏の言うようにXHTML 1.0 Transitionalにしてtarget属性を使用してもいいと考えました。

しかし、なるべくXHTML 1.1に則した文章にしたいと考えたので、JavaScriptという考えに達しました。
ですが、むやみに新規ウインドウを開くことを嫌う人もいるので、ウインドウを開くことを中止することにしました。

お礼日時:2006/02/28 12:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!