htmlでblankに関する質問です。


DTDチェッカーなどで文句言われないように、別窓で開くのを
<a href="http://www.example.com/" onclick="window.open('http://www.example.com/','_blank'); return false;" onkeypress="window.open('http://www.example.com/','_blank'); return false;">example</a>
という風にしています。

FireFOXの場合、基本、新しいタブで開いてくれるんですが、
たまに、新規の窓になって、スクロールバーやツールバーなどが消えることがあります。

これを防ぐにはどうすればいいでしょうか?

回答の条件
  • 1人2回まで
  • 登録:2008/01/23 18:35:38
  • 終了:2008/01/30 18:40:02

回答(3件)

id:Marine-Blue No.1

Marine-Blue回答回数237ベストアンサー獲得回数122008/01/24 04:59:23

ポイント35pt

文法チェッカーなどが問題にしてるのはtarget="_blank"を使うことでなく新しいウインドウを開くことそのものなわけでそういう風にして警告を回避するのは意味がないです。もしどうしても新しいウインドウで開かなければならないと言うのなら素直にtarget="_blank"を使ったほうが良いんじゃないかと思いますよ。例え非推奨属性であったとしてもね。


http://www.mozilla-japan.org/support/firefox/faq#spell-abbreviat...

FirefoxをFireFOXと書いてるのも多少気になるし、JavaScriptで新規ウインドウを開こうとするやつは設定次第で挙動変わるんじゃないかなと思ったりもします。toolbar=yes云々などを指定しても多分変わらないような気が…。

id:caster777

ありがとうございます。

新しいウィンドウ自体がだめなのは知っているんですが、

お客様に説明しても、納得してもらえない&チェッカーで100点を求められる時代なので、

制作側としては、嫌々ながら、お客様の要望に答えないといけなかったりするので、

大変ですよね。

それを知った上で、この質問を投げているのですが、

私に、お客様に納得してもらうだけの力が足りず、つらい感じです。

以降、背景云々別にして、技術的にお答えをお願いいたします。

ちなみに、FireFOXは、ATOKの自動日本語英語の変換で打っちゃったので、おかしくなっちゃいました。

2008/01/25 11:25:09
id:Marine-Blue No.2

Marine-Blue回答回数237ベストアンサー獲得回数122008/01/28 03:18:17

ポイント35pt

事情を把握した上でしばらく考えてみましたが、単純に<a href="hoge" target="_blank">hoge</a>をJavaScriptで吐かせてスクリプトが無効であれば<noscript>に書かれたtargetを使わないタグを使わせるってのはダメでしょうか。とりあえず文法チェッカの警告はスルーできると思うんですが。

もしも単純な仕掛けがばれて困るようなときは出力する文字をスクリプトに記述するときエスケープしておけば素人には解読出来ないだろうと思います(笑)

http://homepage3.nifty.com/chado/playjs/mojicode/mojicode_area.h...

<script type="text/javascript">
<!--
// 長いとみづらいのでここでは分割していますが、つなげても差し支えありません。
document.write('\x3C\x61\x20\x68\x72\x65\x66\x3D\x22\x68\x74\x74\x70\x3A\x2F\x2F');
document.write('\x77\x77\x77\x2E\x68\x61\x74\x65\x6E\x61\x2E\x6E\x65\x2E\x6A\x70\x22');
document.write('\x74\x61\x72\x67\x65\x74\x3D\x22\x5F\x62\x6C\x61\x6E\x6B\x22\x3E');
document.write('\u306F\u3066\u306A\x3C\x2F\x61\x3E');
//-->
</script>
<noscript>
<a href="http://www.hatena.ne.jp/">はてな</a>
</noscript>

例えば上記スクリプトを実行すると下記のHTMLが出力されます。

<a href="http://www.hatena.ne.jp/" target="_blank">はてな</a>

※とりあえず分かれば良いので事例ではstrictとか何とか無視してます。

id:caster777

なるほど。

この考えは思いつきませんでした。

灯台もと暗しというか、盲点でした。

ありがとうございます。

2008/01/28 09:12:25
id:pmakino No.3

まきのっぴ回答回数353ベストアンサー獲得回数282008/01/28 19:12:40

ポイント10pt

window.open に3番目の引数をつけていませんか?

window.open の3番目の引数で各種オプションパラメータを指定していると、そのような現象になってしまいます。

余談ですが、window.open('http://www.example.com/', ~) の部分は window.open(this.href, ~) とすると同じ URL を3回書かずに済んで少しすっきりするのでお奨めです。

個人的には Marine-Blue さんの考えに賛同します。

チェッカーで100点を求めているのが顧客なのであれば、別窓を開くこと自体が良くないということも説明すればわかってもらえるのではないかなと思いますが、趣旨を理解する気はないけどとりあえず100点じゃなきゃダメだと盲目的になってしまっている顧客なのでしょうか…

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません