• ベストアンサー

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

以下は、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

  • 別窓についての質問です。

    別窓の開くJavaScriptは分かるのですが、 別窓を多く開く方法が分かりません (1)大きめの窓で開きたい (2)小さめの窓で開きたい (↑サイズ指定をして) という場合、別窓を共有(?)する形になってしまい、 (1)を開いたまま、(2)を開こうとすると、 (1)の大きさの窓なので、 (2)のページを開くと余白ができてしまいます。 <HEAD>~</HEAD>内に <SCRIPT language=JavaScript><!-- function subWin1(){ window.open("★★★","window2","resizable=no,menubar=no,directories=no,status=no,location=no,scrollbars=yes,toolbar=no,width=500,height=500,left=10,top=10"); } --> </SCRIPT> <BODY>~</BODY>内に <A href="javascript:subWin1();" style="text-decoration:none" style="color:black"> <FONT onmouseover='this.color="#FF0000";' onmouseout='this.color=""'> <b>掲示板</b> </FONT> </A> (1)・(2)共、この書き方をしているのですが… ご意見お待ちしています。

  • 小窓を開くJSで、高さを調節して表示位置も画面の右端にしたい(2)

    昨日質問した http://oshiete1.goo.ne.jp/kotaeru.php3?q=1919765 の続きなのですが、文末サンプルの5行目(window.opem・・・)の改造について (1) status=yesをnoにすると、高さがステータスバー分空洞になってしまいます。 (2) 幅を%でなく、固定値(例:200px)にしたいと、 window.open(url, name, 'status=yes,resizable=yes,top=0,left='+getScreenWIDTH()-200+',width=200,height='+getScreenHEIGHT()); としてみましたら、今後は変なところに窓が表示されてしまいます。 (1) (2) を解決するため、私の解釈はどこが誤っていますでしょうか。 <html> <head> <script language="javascript" type="text/javascript"> function openNewWin(url, name){ window.open(url, name, 'status=yes,resizable=yes,top=0,left='+getScreenWIDTH()*0.7+',width='+getScreenWIDTH()*0.3+',height='+getScreenHEIGHT()); } //スクリーンサイズから画面サイズ取得(高さ) function getScreenHEIGHT(){ if(!!window.screen){ //N4,N6,Moz,IE,共用 return screen.height-80; }else{ //上記以外 return null; } } //スクリーンサイズから画面サイズ取得(幅) function getScreenWIDTH(){ if(!!window.screen){ //N4,N6,Moz,IE,共用 return screen.width-12; }else{ //上記以外 return null; } } </script> </head> <body> <a href="#" target="new" onClick="openNewWin('komado.html','a'); return false;"> 小窓を開く </a> </body> </html>

  • javascriptの長いコードをサブルーチン化する方法

    初歩的な質問かもしれませんが <a href="javascript:void(0);" onclick="window.open ('note.htm','_blank','location=no,menubar=no,scrollbars=yes, resizable=yes,status=no,width=200,height=100,top=0,left=0')">※注釈※</a> …というHTMLをたくさんの箇所に挿入したいのですが,これではあまりにも長い ので,該当ファイルのヘッダ内に <head> <SCRIPT language="javascript" type="text/javascript" src="../script/winopen.js"></script> </head> みたいにwinopen.jsとして収め,必要箇所で呼び出したいのですが, (1) winopen.jsファイル内 と (2) HTMLの<body></body>内 には 具体的にどのように記述したらよいものでしょうか?

  • ブラウザサイズをフルサイズで表示させる方法

    ブラウザにタイトルバーとスクロールバーとスタートバー以外を表示しないページを作成したいのですが、 XPはOKで、WIN98でうまくいきませんでした。リンク先をクリックすると別ウィンドウが立ち上がる仕組みです。画面サイズに合わせて変わるようなのですが、WIN98では、スクロールバーが途中で切れてしまい、 一番下まで、綺麗に表示できませんでした。これ以外の方法でもかまいませんので、どなたかご伝授いただければと思います。 function wopen(url){ if(screen.width <= 640){ window.open(url,"_blank","resizable=no,menubar=no,status=yes,location=no,scrollbars=yes,toolbar=no,width=640,height=480,left=0,top=0") }elseif(screen.width <= 800){ window.open(url,"_blank","resizable=no,menubar=no,status=yes,location=no,scrollbars=yes,toolbar=no,width=800,height=600,left=0,top=0") }else if(screen.width <= 1024){ window.open(url,"_blank","resizable=no,menubar=no,status=yes,location=no,scrollbars=yes,toolbar=no,width=1024,height=768,left=0,top=0") }else if(screen.width <= 1152){ window.open(url,"_blank","resizable=no,menubar=no,status=yes,location=no,scrollbars=yes,toolbar=no,width=1152,height=864,left=0,top=0") }else if(screen.width <= 1280){ window.open(url,"_blank","resizable=no,menubar=no,status=yes,location=no,scrollbars=yes,toolbar=no,width=1280,height=1024,left=0,top=0") }else{ window.open(url,"_blank","resizable=no,menubar=no,status=yes,location=no,scrollbars=yes,toolbar=no,width=1600,height=1240,left=0,top=0") } return; } : <A href="javascript:wopen('/index.html')">

  • ジャバスクリプトでウィンドウサイズ指定を複数

    ご覧いただきありがとうございます。 ネットで調べながら独学でジャバスクリプトの設置をしております。 色々ためしたのですが解決できないのでご教授願います。 ウィンドウサイズを指定して新しいウィンドウを開くジャバスクリプトのリンクを、異なる条件で同じページに複数指定することはできるでしょうか。 同ページ内にあるAのリンクはサイズ400×300で、Bのリンクは600×500といった具合にです。 自分なりに考えてみて下記のように記述してみましたが、BのリンクにもAが適用されてしまいました。 ■head内の記述 <head> <script language="JavaScript"> <!-- function wopen1(){ win=window.open("リンクAのURL","new","width=400,height=300","resizable=no","scrollbars=no","menubar=no","toolbar=no","directories=no","status=no","left=100","top=100","screenX=100","screenY=100"); win.moveTo(100,100); } // --> </script> <script language="JavaScript"> <!-- function wopen2(){ win=window.open("リンクBのURL","new","width=600,height=500","resizable=yes","scrollbars=yes","menubar=no","toolbar=no","directories=no","status=no","left=100","top=100","screenX=100","screenY=100"); win.moveTo(100,100); } // --> </script> </head> ■リンク箇所の記述 <a href="javascript:wopen1()">リンクAのテキスト</a> <a href="javascript:wopen2()">リンクBのテキスト</a> head内の記述をひとつだけにすると正常に動作するので、head内の記述が間違っていると思うのですが、よくわかりません。ご教授おねがいいたします。

  • 閉じる「×」のないウインドウの作り方

    下記のようなウインドウもしくは、全く形式の?のウインドウでもけっこうですが、右上の閉じる「×」もないウインドウはどのように作れますか? <SCRIPT language=JavaScript> window.open("sample.htm","plan","width=600,height=600,scrollbars=1,menubar=no,resizable=yes,left=10,top=10"); </SCRIPT>

  • JAVA SCRIPTのウィンドウサイズの調整について

    JAVA SCRIPTのウィンドウのサイズの調整についてお聞きしたいのです。 私は自分のサイトのトップページの<HEAD>のあとに、 <script language="Javascript"> <!-- function newwin(){ var win1=window.open('***.htm','newwindow', 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,width=200,height=200'); } //--> </script> を挿入していますが、 これだけでは、どのウィンドウも200×200のサイズで開かれてしまいます。 開くウィンドウによってサイズを変えたいのです。 具体的に例をあげると、トップページからのリンク先Aは、200×200のサイズ、 リンク先Bは、400×400のサイズ、 という具合に、それぞれのJAVA SCRIPTのサイズを変えて表示させたいのですが、 やり方がわかりません。 どなたかご教示していただけると大変助かります。 よろしくお願いいたします。

  • ポップアップウィンドウを画面中央に配置+複数リンクを同じウインドウに表示させたい

    過去にあった複数のイベント等の写真をスライドショーで紹介するページを作成中です。 ひとつのページ上に複数リンクがあって、それぞれクリックするとポップアプウィンドウが画面中央で開くようにすることはできました。(下記参照) <script type="text/javascript"> <!-- function win(url,windowname,width,height) { var features="location=no, menubar=no, status=yes, scrollbars=yes, resizable=yes, toolbar=no"; if (width) { if (window.screen.width > width) features+=", left="+(window.screen.width-width)/2; else width=window.screen.width; features+=", width="+width; } if (height) { if (window.screen.height > height) features+=", top="+(window.screen.height-height)/2; else height=window.screen.height; features+=", height="+height; } window.open(url,windowname,features); } // --></script> body内 <a href="link_page.htm"onclick="win(this.href,null,600,430); return false;"><img src="image.gif" width="123" height="18" /></a></td> ただ複数あるリンクをクリックすると、ポップアップウィンドウも次々増えてしまうのを、常にひとつのウインドウ上に表示させることができません。 どうぞご指南よろしくお願いします!

  • 中央に小窓表示

    とあるサイトで中央に小窓表示JavaScriptを使用し Another HTML-lint gatewayで文法チェックしたら XHTMLでは <SCRIPT> や <STYLE> の内容が #PCDATA です。コメントはコメントとして解釈されてしまうので、旧来のテクニックは使えません。外部にスクリプトファイルやスタイルファイルを用意するようにしましょう。 とでました 下記のJavaScriptを外部形式にするにはxxx.jsに書くところまではわかりましたが書き方がわかりませんどこを変更したらいいのでしょうか <script type="text/javascript"><!-- function m_win(url,windowname,width,height) { var features="location=no, menubar=no, status=yes, scrollbars=yes, resizable=yes, toolbar=no"; if (width) { if (window.screen.width > width) features+=", left="+(window.screen.width-width)/2; else width=window.screen.width; features+=", width="+width; } if (height) { if (window.screen.height > height) features+=", top="+(window.screen.height-height)/2; else height=window.screen.height; features+=", height="+height; } window.open(url,windowname,features); } // --></script> よろしくお願いします

  • Javascriptを使わないで別窓

    サイトの作成で、現在以下のjavascriptを使用したつくりになっているんですが、 function subWin1(){ window.open("top_ss.htm","lunanueva","resizable=no,menubar=no,directories=no,status=no,location=no,scrollbars=yes,toolbar=no,width=800,height=620");} ※ステータスバーとか消した別窓を出すjavascript Javascriptを使用せず、ステータスバーを消す別窓など、それに近いことを行うことはできないでしょうか。

    • ベストアンサー
    • HTML

専門家に質問してみよう