• ベストアンサー

画面の高さを一杯にして新しい窓を開くスクリプトが機能しない

以下は、detail.htmlを新しいウィンドウで開く際、 ・左上隅に ・幅800pxで ・ユーザーの画面の高さを取得して、縦一杯に(=getScreenHEIGHT←前に当BBSで教わりました) という条件になっています。 これが、ローカルでは思惑通り動きますが、 FTPでサーバーにアップすると、「縦一杯」という指定が効きません。 たぶん、「width=800,height=+(getScreenHEIGHT()+20)),top=0,」のあたりの プラス(+)とかクォーテーション(')の打ち方などに誤りがあるのではないかと 思いますが、正しい書き方を教えてください。 <html> <head> <script type="text/javascript"> function getScreenHEIGHT(){ if(!!window.screen){ return screen.height-80; }else{ return null; } } </script> </head> <body> <a href="javascript:void(0);" onclick="window.open('./detail.html','_blank','location=no,menubar=no,scrollbars=yes,resizable=yes,status=no,width=800,height=+(getScreenHEIGHT()+20)),top=0,left=0')">リンク</a> </body> </html>

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

オプション指定の部分は、'~' の文字列ですから、関数の結果を挿入しようと思ったらいったん文字列から出す必要があります。 文字列として連結してしまわないように、計算させてから文字列で連結するということで、 (わかりやすさのために前後を含めると) width=800,height='+(getScreenHEIGHT()+20)+',top=0 のように変更する必要があると思います。

litton101
質問者

お礼

おかげさまで解決しました。 'を入れてみたり+をいれてみたりいろいろ(根拠なく(^^;)試しましたが、 ご教示いただけてよかったです。 ご提示のものと比較してみたところ、 本番環境ではなんか、無用な閉じカッコもあったりで、不注意もありました。 ありがとうございました。

その他の回答 (1)

  • heroko
  • ベストアンサー率50% (2/4)
回答No.2

ローカルで動くというのがなぜかわかりませんが、 ご自分でも書かれていますとおり、シングルコーテーションや+に誤りがあります。 >'location=no,menubar=no,scrollbars=yes,resizable=yes,status=no,width=800,height=+(getScreenHEIGHT()+20)),top=0,left=0' 'location=no,menubar=no,scrollbars=yes,resizable=yes,status=no,width=800,height='+(getScreenHEIGHT()+20)+',top=0,left=0' に変えてみてください。

litton101
質問者

お礼

herokoさん、ありがとうございました。 #1さんの御礼にも書きましたが、 まったくご教示の通りの顛末でした・・ 貴重なアドバイスありがとうございました。

関連するQ&A