2011-01-07 3 views
2

Мой босс попросил страницу, которая не изменится, чтобы иметь две загруженные всплывающие всплывающие окна. Я нашел код и отредактировал его так, как я думал, что он должен делать, но он загружает только последнее событие onLoad. Я дизайнер, и я помогал в создании веб-страниц, но Javascript пока что выходит за рамки того, что я могу понять. Я уже узнал, как использовать одиночное всплывающее окно и потратил время на изучение тайм-аутов, но я не могу заставить его работать с несколькими всплывающими функциями. Если у вас есть момент, вы бы посмотрели? Спасибо :)Javascript Pop Ups

ч

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>H's Page 1</title> 

<SCRIPT LANGUAGE="JavaScript"> 
<!-- Original: Ronnie T. Moore, Editor --> 
<!-- Web Site: The JavaScript Source --> 

<!-- This script and many more are available free online at --> 
<!-- The JavaScript Source!! http://javascript.internet.com --> 

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

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

function doPopup1() { 
    url = "http://www.google.com"; 
    width = 1680; // width of window in pixels 
    height = 1050; // height of window in pixels 
    delay = 10; // time in seconds before popup opens 
    timer = setTimeout("Start1(url, width, height)", delay*1000); 
    } 

closetime = 3; // Close window after __ number of seconds? 


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


function doPopup2() { 
    url = "http://www.yahoo.com"; 
    width = 1680; // width of window in pixels 
    height = 1050; // height of window in pixels 
    delay = 5; // time in seconds before popup opens 
    timer = setTimeout("Start2(url, width, height)", delay*1000); 
    } 



// End --> 
</script> 

<!-- STEP TWO: Insert the onLoad event handler into your BODY tag --> 

<!-- Script Size: 1.27 KB --> 

</head> 

<body OnLoad="doPopup1(); doPopup2();"> 
<p>My page text.</p> 
<p>My page text.</p> 
<p>My page text.</p> 
<p>My page text.</p> 
</body> 
</html> 
+1

Вы смешиваете процедурные и функциональные стили. Например, ваша переменная 'closetime' находится в глобальной области видимости и должна существовать только один раз. Определяя его перед определением функции, переопределяя его до того, как другая функция не сделает то, что вы думаете. BTW также вы должны ввести локальные переменные с ключевым словом 'var'. Я ненавижу говорить об этом, но мне придется предложить получить Javascript книгу. В ответе StackOverflow слишком много средств для покрытия; чтобы написать Javascript, вы должны знать Javascript! –

+0

Спасибо Томалак. Я выберу второе ближайшее время. Мне бы хотелось узнать больше, но это не то, что я успею потратить на изучение самого кода, надеюсь, у меня будет больше времени на следующий проект. – user566312

+1

Интересно, можете ли вы договориться, чтобы получить больше за нерабочую работу! – erjiang

ответ

-1

первых, позвольте мне дать мои соболезнования Вам за то, что босс, который приказывает использовать всплывающие окна ... они ненавистны :(в любом случае, если вы хотите напугать посетители, я предполагаю, что это до вас, так что здесь идет:..

вы перезаписать переменные URL-адрес с таймаутами следующих работ для меня в Firefox, хотя:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
     <title>H's Page 1</title> 

     <SCRIPT LANGUAGE="JavaScript"> 
      <!-- Original: Ronnie T. Moore, Editor --> 
      <!-- Web Site: The JavaScript Source --> 

      <!-- This script and many more are available free online at --> 
      <!-- The JavaScript Source!! http://javascript.internet.com --> 

      <!-- Begin 
      closetime = 3; // 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 = "http://www.google.com"; 
       width = 1680; // width of window in pixels 
       height = 1050; // height of window in pixels 
       delay = 5; // time in seconds before popup opens 
       timer = setTimeout("Start1(url1, width, height)", delay*1000); 
      } 

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

      function doPopup2() { 
       url2 = "http://www.yahoo.com"; 
       width = 1680; // width of window in pixels 
       height = 1050; // height of window in pixels 
       delay = 10; // time in seconds before popup opens 
       timer = setTimeout("Start2(url2, width, height)", delay*1000); 
      } 

      // End --> 
     </script> 

     <!-- STEP TWO: Insert the onLoad event handler into your BODY tag --> 

     <!-- Script Size: 1.27 KB --> 

    </head> 

    <body OnLoad="doPopup1(); doPopup2();"> 
     <p>My page text.</p> 
     <p>My page text.</p> 
     <p>My page text.</p> 
     <p>My page text.</p> 
    </body> 
</html> 
+0

Большое вам спасибо! :) – user566312

1

Я очистил свой код немного, и создали закрытие, чтобы лучше справляться с настройкой.
Если вам когда-либо понадобится это модифицировать, я думаю, что вы найдете способ установления связи таким образом проще (вы столкнетесь с меньшими проблемами с глобальными переменными).

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>H's Page 1</title> 

<SCRIPT LANGUAGE="JavaScript"> 
<!-- Original: Ronnie T. Moore, Editor --> 
<!-- Web Site: The JavaScript Source --> 

<!-- This script and many more are available free online at --> 
<!-- The JavaScript Source!! http://javascript.internet.com --> 

<!-- Begin 

var closetime = 3; // Close window after __ number of seconds? 
// 0 = do not close, anything else = number of seconds 


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

function doPopup1() { 

    function startCaller() { 
     var url = "http://www.google.com"; 
     var width = 1680; // width of window in pixels 
     var height = 1050; // height of window in pixels 
     Start1(url, width, height); 
    } 
    var delay = 10; // time in seconds before popup opens  
    setTimeout(startCaller, delay * 1000); 
} 


function doPopup2() { 

    function startCaller() { 
     var url = "http://www.yahoo.com"; 
     var width = 1680; // width of window in pixels 
     var height = 1050; // height of window in pixels 
     Start1(url, width, height); 
    } 
    var delay = 5; // time in seconds before popup opens  
    setTimeout(startCaller, delay * 1000); 
} 


// End --> 
</script> 

<!-- STEP TWO: Insert the onLoad event handler into your BODY tag --> 

<!-- Script Size: 1.27 KB --> 

</head> 

<body onload="doPopup1(); doPopup2();"> 
<p>My page text.</p> 
<p>My page text.</p> 
<p>My page text.</p> 
<p>My page text.</p> 
</body> 
</html> 
+0

Большое вам спасибо! :) – user566312

0

Вам нужно закрыть, чтобы сделать window.close работу в таймаут. Не то чтобы это не сработало, если вы просто открываете html-файл с вашим браузером, по крайней мере, на FF3.6), но вы бы положили его на свой веб-сервер.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>H's Page 1</title> 

<SCRIPT LANGUAGE="JavaScript"> 
<!-- Original: Ronnie T. Moore, Editor --> 
<!-- Web Site: The JavaScript Source --> 

<!-- This script and many more are available free online at --> 
<!-- The JavaScript Source!! http://javascript.internet.com --> 

<!-- Begin 

var closetime = 3; // Close window after __ number of seconds? 
// 0 = do not close, anything else = number of seconds 

function doPopup(url, delay) { 
    var width = 1680; // width of window in pixels 
    var height = 1050; // height of window in pixels 
    setTimeout(function() { 
     var windowprops = "left=50,top=50,width=" + width + ",height=" + height; 
     var preview = window.open(url, "preview", windowprops); 
     if (closetime) { setTimeout(function(){ 
      preview.close(); 
     }, closetime * 1000); } 
    } , delay * 1000); 
} 


// End --> 
</script> 

<!-- STEP TWO: Insert the onLoad event handler into your BODY tag --> 

<!-- Script Size: 1.27 KB --> 

</head> 

<body onload="doPopup('http://www.google.com', 1); doPopup('http://www.yahoo.com', 2);"> 
<p>My page text.</p> 
<p>My page text.</p> 
<p>My page text.</p> 
<p>My page text.</p> 
</body> 
</html> 
+0

Большое вам спасибо! :) – user566312

Смежные вопросы