2012-05-04 14 views
1

私は代替リアリティーゲームに取り組んでいます。ポップアップを閉じながら、ある時間内に数学的な質問に答えなければならないレベルを作成することが任されています。目標は、ポップアップが自分のポップアップを生成するようにすることです。ユーザーがポップアップを長すぎると無視すると、コントロールがすぐに消えてしまいます。人々がポップアップブロッカーを放置しないようにするには、数学の問題もポップアップになるでしょう。残念ながら、私はJavascriptを知らないので、Webからコードをコピーすることに頼っています。他のポップアップを作成するポップアップを作成するにはどうすればよいですか?

私の計画は、focus.htmlというページを5秒ごとにポップアップする(つまり、まだ時間を決めている)ベースページを持つことです。 focus.html彼らは、5秒ごとに別のfocus.htmlをポップアップします。あなたが5秒間開かれたままにしておけば、2人で閉じることができます。理論的には。

しかし、何らかの理由で、ポップアップは自分のポップアップを作成しません。ベースページを開くと、focus.htmlはベースページが呼び出されたときにのみポップアップします。また、focus.htmlを手動で開くと、ポップアップはメインブラウザにあるfocus.htmlのコピーからのみ発生します。

focus.htmlのためのコード:

<head> 

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

<!-- <link rel="stylesheet" href="game.css" type="text/css" media="screen" /> --> 

    <title>Focus</title> 


    <SCRIPT LANGUAGE="JavaScript"> 

     <!-- Begin 
     closetime = 0; // Close window after __ number of seconds? 
     // 0 = do not close, anything else = number of seconds 

     function Start1(URL1, WIDTH, HEIGHT) { 
      windowprops = "left=50,top=50,width=" + WIDTH + ",height=" + HEIGHT; 
      preview = window.open(URL1, "preview", windowprops); 
      if (closetime) { 
       setTimeout("preview.close();", closetime*1000); 
      } 
     } 


     function doPopup1() { 
      url1 = "focus.html"; 
      width = 500; // width of window in pixels 
      height = 500; // height of window in pixels 
      delay = 5; // time in seconds before popup opens 
      timer = setTimeout("Start1(url1, width, height)", delay*1000); 
     } 

     function doPopup2() { 
      url1 = "focus.html"; 
      width = 500; // width of window in pixels 
      height = 500; // height of window in pixels 
      delay = 10; // time in seconds before popup opens 
      timer = setTimeout("Start1(url1, width, height)", delay*1000); 
     } 

        function doPopup3() { 
      url1 = "focus.html"; 
      width = 500; // width of window in pixels 
      height = 500; // height of window in pixels 
      delay = 15; // time in seconds before popup opens 
      timer = setTimeout("Start1(url1, width, height)", delay*1000); 
     } 



     // End --> 
    </script> 

</head> 



<body OnLoad="doPopup1(); doPopup2(); doPopup3();"> 

    <br /> 

    <p>Remember to FOCUS.</p> 


</body> 

+0

ブラウザは、特定のページに対して任意の名前のポップアップを1つだけ開くので、 '' preview.''を 'window.open()'の第2引数として渡すと問題が発生します。代わりに 'undefined'を渡してください。 –

+0

'setTimeout'に文字列を渡さず、' eval'を使います。関数を渡す: 'setTimeout(function(){Start1(url1、width、height);}、delay * 1000)' –

+0

ありがとう、それは完璧に働いた。 – CowGoes

答えて

1
preview = window.open(URL1, "preview", windowprops); 

秒のウィンドウが開かれると、それは最初と同じ名前を持つことになりますので、あなたは決して2つ以上を開くことができる。名前(空文字列)を渡さないと、多くを開くことができます。

+0

でそれをチェックしてくださいありがとう、魅力のように働いた。私はupvoteしたが、私は十分な担当者を持っていない。 – CowGoes

+0

@Cowあなたは受け入れることができますが、これはさらに優れています。投票カウンタの下にある大きなチェックマークをクリックします –

関連する問題