2013-07-30 34 views
0

我在JavaScript中編寫了下面的代碼,當按下按鈕時打開一個彈出窗口,然後使用setInterval每2秒移動一次窗口。使用setInterval在JavaScript中移動一個彈出窗口

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset = "utf-8"> 
    <title> Javascriptin' Some Codes </title> 
    <script> 
      function hi() { 
      var printOut = window.open("http://www.google.com","_blank", 'height=200, width=200'); 
      setInterval(function() { printOut.moveBy(10,10);}, 2000) 
      window.alert("hi");} 
    </script> 
</head> 
<body> 
    <button onclick="hi()"> Try me </button> 
</body> 
</html> 

的窗口打開,但的setInterval不會出現與工作窗口在啓動後不動。我想知道爲什麼我的代碼不起作用,以及我能做些什麼來使它按照我喜歡的方式工作。

+0

看到這個http://stackoverflow.com/questions/7678976/what-is-self-moveby-and-why-doesnt-it-work-on-chrome +'alert'對話框將阻止進一步的JS執行。 – marekful

+0

@ Marcell - 當我在間隔中沒有它時,moveby在彈出窗口上工作。 – MYV

+1

是的,那是因爲在這種情況下'moveBy'被執行_before_'alert'會阻止進一步的執行。如果它在'setInterval'中,那麼它第一次執行傳遞給'setInterval'的匿名函數中的代碼會被延遲2秒,但是到那時爲止會有警報塊。刪除'alert',如果'moveBy'沒有被瀏覽器禁用,它應該可以工作。 – marekful

回答

1

打開的網址必須與this answerDEMO)中所述的域名相同。

例如上的jsfiddle,這個工程:

var printOut = window.open("http://fiddle.jshell.net","_blank", 'height=200, width=200'); 

這一個不會:

var printOut = window.open("http://www.google.com","_blank", 'height=200, width=200'); 

你也應該刪除警報,但它工作在鉻接縫它打破它例如歌劇。