• 締切済み

javascriptで印刷ダイアログを出力すると同時に

javascriptで印刷ダイアログを出力すると同時に setTimeouで一定時間後にアラートを表示していたのですが、 IE8では印刷ダイアログが表示されている時はタイマーが止まってしまうようです。 また、IE6では動作しました。 なにか解決方法はないでしょうか? 以下がサンプルソースです。 <html> <head> <title>setTimeout</title> <script type="text/javascript"> function aaa() { alert("タイムアウトしました。"); } function func() { setTimeout("aaa()", 5000); window.print(); } </script> </head> <body onload="func()"> aaa </body> </html>

みんなの回答

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

意味が?... 5秒後に、"タイムアウトしました。"とアラートしてから 印刷したいのですか? それとも、"タイムアウトしました。"のアラートとは関係なく5秒後に印刷 したいのですか? それとも、印刷するタイミングによらず、5秒後に、"タイムアウトしました。" とアラートを出したいのですか? ※印刷ダイアログって、Windows(ブラウザー)が出すやつですか、

kei216
質問者

補足

質問が分かりにくくてすみません。 3つ目の「印刷するタイミングによらず、5秒後に”タイムアウトしました。” とアラートを出したいです。」 印刷ダイアログはブラウザがだすやつです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • JavaScriptのタイマーについて

    JavaScriptのタイマーについて上手く動作しないので質問させて頂きます。 <仕様>  3秒後に「aaa」のメッセージを表示させる。  5秒後に「aaa」のメッセージを表示させる。 <現在の状況>  3秒後に「aaa」のメッセージを表示し、その後は応答なし。 <ソース> 以下を参照ください。何が悪いのでしょうか? <HTML> <HEAD> <SCRIPT Language="JavaScript"> <!-- timerID = 10; function func() { alert("aaa"); } function init() { timerID = setTimeout("func()", 3000); timerID = setTimeout("func()", 5000); } // --> </SCRIPT> </HEAD> <BODY onload="init()"> </BODY> </HTML>

  • 確認ダイアログとFLASH

    (javascriptのカテゴリーから移してきました) ページのロード時に、確認ダイアログを出すように設定しています。 キャンセルをクリックするとそのページはcloseし、OKを押すと確認ダイアログが消えるように作っています。 今回、このページにFLASH(powerbulletで作ったもの)を貼り付けました。 NNとFirefoxでは、確認ダイアログが消えてから(OKがクリックされたら)FLASHがロードされますが、IEでは、ダイアログが出ている内に、FLASHのロードが始まってしまいます。 FLASH自体が、『フェードイン・フェードアウト』の動きをしているので、ダイアログの中身を読んでいる間に、ロードが終ってしまいます。 これは、私のスクリプトの書き方が悪いのでしょうか? 何処を書き直せば、IEでも確認ダイアログの動作完了後にFLASHがロードされるようになるでしょうか? ↓ここからがソースです。 <HTML> <HEAD> <TITLE>~</TITLE> <SCRIPT TYPE="text/javascript"> <!-- function disp() { if(window.confirm('テスト')) {return true;} else {self.close();} } // --> <!-- function ChangePage(){location.href="■■■";} // --> </SCRIPT> </HEAD> <BODY onLoad="disp(); setTimeout('ChangePage()',1000*120)"> <object> <!-- ■■■ここに、powerbulletで作ったFLASHのタグ(?)が入っています■■■ --> </object> </BODY> </HTML> (色々必要なさそうなタグを省いたので、もし不明な所が有れば聞いて頂けますか?)

    • ベストアンサー
    • Flash
  • 【javascript】prototypeを使って宣言したfunctionでthis.の値が取れない

    以下HTMLは開いた時に'aaa'がアラートされるつもりで作りました。 ※行頭は全角スペースです。 <html> <head> <script type="text/javascript"><!-- function hoge(){  this.val ='aaa'; }; hoge.prototype.func = function(){  alert(this.val); }; h = new hoge(); if(window.addEventListener){  window.addEventListener('load', h.func, false); }else{  window.attachEvent('onload', h.func); } //--></script> </head> <body> </body> </html> 結果は、undifindがアラートされました。 alert(this.val); を alert(h.val); とベタに記述すれば回避できますが、ちょっと違和感を感じます。 このような場合、どのような記述がベターなのでしょうか?

  • javascriptでalertの文字列をコピー

    初歩的な質問になるかもしれませんが、 javascriptのalertを使用し、表示された文字列をコピペ出来る方法はありますでしょうか? したいことは、下記のalertで表示された【てすと】という文字をコピーして、 editorやワードなどに貼り付けることです。 ブラウザによって異なるのは実証済みです。 FireFoxでは、文字の反転はOKだが右クリックがきかない(Ctrl+Cでコピー・貼り付けはOK) Chrome・IE では反転不可。 多くのブラウザでも同じように簡単にコピーできる方法があれば御教授ください。 <html> <head> <head/> <body> <script language="javascript"> <!-- function aaa(text) { alert(text); } --> </script> <a href="javascript:void(0);" onclick="aaa('てすと');">onclick</a> </body> </html> 以上、宜しくお願い申し上げます。

  • setTimeoutを使った再帰

    初めて質問させて頂きます。 setTimeoutで呼び出してるか否かと、言う違いしか無いと、言う事を思いますが、次に挙げる2つのプログラムの動作が異なる理由をどなたかお教え頂けませんか? <script type="text/javascript"> <!-- var x; function FUNCTION1(){ x = 0; FUNCTION2(x); } function FUNCTION2(x){ if ( x < 10 ) { x++; window.alert(x); FUNCTION2(x); } } //--> </script> <body onload="javascript: FUNCTION1();"> ─────────────────────────── <script type="text/javascript"> <!-- var x; function FUNCTION1(){ x = 0; FUNCTION2(x); } function FUNCTION2(x){ if ( x < 10 ) { x++; window.alert(x); setTimeout("javascript: FUNCTION2(x);", 1000); } } //--> </script> <body onload="javascript: FUNCTION1();">

  • setTimeoutでelementを渡す方法

    setTimeoutの引数にdocument.getElementByIdの情報を格納して 他の関数に渡すことはできないのでしょうか? 下記は自分で調べた内容ですが、aaa()で変数mにdocument.getElementByIdを格納して setTimeoutの引数にその変数を指定してbbb()に渡しましたが使うことができませんでした。 [object HTMLDivElement]は渡っているようですが、tagNameでDIVが表示されません。 ccc()のように普通に渡した場合はちゃんと使えました。 データはちゃんと送られているのに、setTimeoutではなぜtagNameなどで表示されないのでしょうか。 <html lang="ja"> <head> <title>サンプル</title> <script> function aaa() { var m = document.getElementById("xxx"); alert(m); //[object HTMLDivElement] alert(m.tagName); //DIV var p = 777; setTimeout("bbb('"+m+"',"+p+")",1000); ccc(m,p); } function bbb(m,p){ alert(m); //[object HTMLDivElement] alert(m.tagName); //undefined alert(p); //777 } function ccc(m,p){ alert(m); //[object HTMLDivElement] alert(m.tagName); //DIV alert(p); //777 } </script> </head> <body onload="aaa()"> <div id="xxx">サンプル</div> </body> </html>

  • JavaScriptが動かない原因

    javascript は、ほとんど分からない初心者なのですが、 ものすごい単純な事で詰まっています。 <html> <head> <title></title> <script type="text/javascript" language=JavaScript> <!-- function alt() { alert("NG"); } //--> </script> </head> <body> <input type="radio" name="test" value="1" onclick="alt()">テスト1<br> <input type="radio" name="test" value="2" onclick="alert('OK')">テスト2<br> </body> </html> このソースで、テスト1のイベントが発生しません。 IEもfirefoxも、ダメでした。 何が悪いのか・・・・ くだらない質問ですみません。宜しくお願い致します。

  • JavaScriptを使う時は、

    ・・・・・・・・・・・・・・ <HTML> <HEAD> <TITLE> </TITLE> </HEAD> <BODY> <script> alert("test"); </script> </BODY> </HTML> ・・・・・・・・・・・・・・ これでメッセージボックスが表示されるのですが、 なぜ <script type ="text/javascript"> <!-- //--> </script> で括らなくていいのでしょうか? JavaScriptを使う時は、 <script> </script> だけでもいいのでしょうか? http://www.pori2.net/js/kihon/4.htmlこのサイトを参考にしました。

  • Javascriptで画面の切り替え

    Javascriptで画面の切り替えをしたく、 ソースを書いたのですが、 ブラウザの判定を入れたところ、 (今のところIEとFFだけで確認しています。) 全く動かなくなりました。 IE画面の左下に警告マークが出ているので 構文が間違っているようなのですが、 分かりません 解決策を教えていただけないでしょうか。 よろしくお願い致します。 ----------以下ソース---------------------- <HTML> <HEAD> <TITLE>::::Antique Messiah::::</TITLE> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <link href="messiah.css" rel="stylesheet" type="text/css"> <script language="javascript"> function ImageUp() { var isIE = (navigator.appName.substring(0,9)=="Microsoft"); alert(isIE); function check(){ if(isIE) alert("fftart"); window.open("top.html","","WIDTH=600,HEIGHT=600"); window.opener = ""; window.close(); else alert("fftart"); window.open("top.html","","WIDTH=600,HEIGHT=600"); top.name = 'CLOSE_WINDOW'; var wid = window.open('','CLOSE_WINDOW'); top.close(); } } function changesize(){ window.resizeTo(800,700); } window.onload=changesize; window.onresize=changesize; </script> </HEAD> <BODY onLoad="changesize(), setTimeout(ImageUp,3000)"> ~中略~ </body> <html>

    • ベストアンサー
    • CSS
  • ネスケでdocument.write

    質問があります。 <html> <head> <script type="text/javascript"> <!-- str = "a"; function func(){ document.open(); document.write( str ); document.close(); } --> </script> </head> <body onload = "func()"> </body> </html> というソースを組んだのですが、IE6なら正常に表示できたのにNetscape7だと表示されませんでした。 document.write("a")と記述すると表示できたのですが・・・。 本来組みたいソースは上記のstrが長文かつ多用するために簡略化したいのですが、何か良い方法はあるでしょうか?