SSブログ

Firefoxのwindow.openの謎(同じ名前のウインドウやタブで開いたり開かなかったり) [メール投稿]

正己さんはTwitterを使っています: "謎は一つ解けたが、同じ名前で開く場合と開かない場合があること、同じJavascriptなのにウインドウが開く場合とタブで開く場合があること、ウインドウで開けば同じウインドウで開くのにタブだと別のタブで開いてしまうことの理由が分かってない。"
...

こんなソースを作って試してみた。
<html>
<head>
<script type="text/javascript" language="javascript">
<!--
function sample1() {
window.open("http://www002.upp.so-net.ne.jp/self/","sample","width=600,height=500");
}
function sample2() {
window.open("http://www.geocities.jp/selfmirror7777/robamimi/roba0000.html","sample");
}
function sample3() {
window.open("http://self.blog.so-net.ne.jp/","sample");
}
function sample4() {
window.open("http://self.blog.so-net.ne.jp/","sample","width=600,height=500");
}
function sample5() {
window.open("http://www.rakuten.co.jp/","sample");
}
function sample6() {
window.open("http://www.rakuten.co.jp/","sample","width=600,height=500");
}
// -->
</script>
</head>
<body>
<a onclick="sample1()">ウインドウサイズを指定して私のサイトを開く</a><br />
<a onclick="sample2()">ウインドウサイズを指定せず私の独り言を開く</a><br />
<a onclick="sample3()">ウインドウサイズを指定せず私のブログを開く</a><br />
<a onclick="sample4()">ウインドウサイズを指定して私のブログを開く</a><br />
<a onclick="sample5()">ウインドウサイズを指定せず楽天市場を開く</a><br />
<a onclick="sample6()">ウインドウサイズを指定して楽天市場を開く</a><br />
</body>
</html>

 同じ"sample"という名前なのに、別のウインドウで開いたり、別のタブで開いたりする。
 Firefoxでは about:config の browser.link.open_newwindow.restriction がデフォルトで 2 になっていて、それではJavascriptでウインドウサイズを指定しないと新しいタブで開くらしい。
 だから上のスクリプトで最初にsample2()を実行した場合はタブで開く。ただし、先にsample1()を実行すると同じ名前のウインドウで開く。それは正常。また、先にsample2()を実行した後でsample1()を実行するとウインドウではなくsample2()で開いたタブに開く。たぶんそれも正常。
 しかし、sample3()、sample4()をクリックして、いろいろな順番で試してほしい。わけが分からなくなる。
 いったい、どのようなルールになっているのだろう?
 以下は、上のスクリプトのリンク。
ウインドウサイズを指定して私のサイトを開く
ウインドウサイズを指定せず私の独り言を開く
ウインドウサイズを指定せず私のブログを開く
ウインドウサイズを指定して私のブログを開く
ウインドウサイズを指定せず楽天市場を開く
ウインドウサイズを指定して楽天市場を開く

続きを読む


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:moblog

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。