現在のページ

HOME » ID-Blogger » テクノロジー » トラブルシューティング » JavaScriptで別窓(window.open)が開かない!対策

JavaScriptで別窓(window.open)が開かない!対策

なかなかブログ書くヒマがありません!ただいま死にそうになりながら某サイトのシステムを構築中です。
そんなさなか、またもや問題が勃発…なんでこんな時に…忘れないウチに技術メモを残しますw

ブラウザで小窓風に別ウィンドウを開かせたい場合は、JavaScriptを使ってopen()メソッドの「window.open」で指定するんですが、Windowsは問題ないのになぜかMacでは反応しない!
なんでMacってこう使えないのが多すぎるんだろう?
以前にも同じ現象で苦しんだ末なんとか突破したんですが、対策が思い出せない…
スクリプト辞典見ても問題ないようだし、以前の作ったタグと見比べても違いがない。

制作にMacromediaのDreamweaver使ってるんですが、このソフトを使うと簡単にビヘイビアから指定するだけで勝手にJavaScriptを書いてくれます。この場合HEADタグにJavaScriptのファンクションとして指定してBODY側から呼び出すように構築されます。ページ内に小窓を開くボタンが複数ある場合はこの方がいいんでしょうねw
ちなみにこんなカンジです↓



<head>
   :
   :
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_openBrWindow(theURL,winName,features) { //v2.0
window.open(theURL,winName,features);
}
//-->
</script>
</head>
<body>
   :
   :
〜 onClick="MM_openBrWindow('指定先URL','ウィンドウ名','ウィンドウサイズとか諸々指定')" 〜
※この辺の書き方はいろんなパターンが…なので省略w
   :
   :
</body>


かのMacromedia様がお作りになられたスクリプトに疑念を抱いてはいけないのですがw ファンクションで呼び出すのがApple様のMac&IEのご機嫌を損ねているのかと思い、直接実行するように書き直してみる。ちなみにこんなカンジです↓


<head>
   :
※ファンクションは削除
   :
</head>
<body>
   :
   :
〜 onClick="window.open('指定先URL','ウィンドウ名','ウィンドウサイズとか諸々指定')" 〜
※…なので省略w
   :
   :
</body>


早速アップロードして試してみますが…今度はWindowsでも無反応に…なぜ?書き方が悪かったのか?!
onClickを画像とかテキストとかフォームボタンとかに組み込んだりして、あらゆるパターンで試行するもすべて全滅。ここは原点に戻って「がんばって思い出す」という作業を開始。
う〜む…………ムム……あっ!思い出した♪

結論だけ書けばこんな長くなかったんですがw
実は「window.open」で指定する”ウィンドウ名”に問題がありました。
Macで失敗してたパターンは、”ウィンドウ名”に日本語を使ってたのが問題でした。Windowsだと日本語で指定しててもスルーしちゃうので気付かなかったです。
Windowsの場合は、”ウィンドウ名”にスペース(ブランクですね)が含まれてた事です。この時点で”ウィンドウ名”は英数字化してたんですが、名前を変えるときに思わずスペース入れて指定しちゃってたようです。
よくよく考えたら”ウィンドウ名”ってターゲットウィンドウの事なのですね…

という事で「window.open」を使った小窓風の別窓を開く場合は、
●”ウィンドウ名”にスペースを挿入しない!
●”ウィンドウ名”に日本語は絶対に使わない!
というのが解決策でした。まあ無指定でも全然問題ないので空欄で良かったんですが…トホホ…

トラックバック

このエントリーのトラックバックURL:
http://www.infinity-dimensions.com/blog/mt-tb.cgi/169

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

コンテンツメニュー

カテゴリー

Add