2014-09-10 146 views
2

我有非常簡單的代碼的jQuery的window.open不能正常工作

$('.opennewwindow').click(function(e) { 
    e.preventDefault(); 
    window.open("http://www.stackoverflow.com") 
    /*alert('its works');*/ 
}); 

<button class="opennewwindow" value="somevalue">Open new window!</button> 

不幸的是,代碼不起作用(函數調用,而不是open.window)。錯誤不會出現anywya。

我想這樣太:

$('.opennewwindow').click(function(e) { 
    e.preventDefault(); 
    myWin = window.open("http://www.stackoverflow.com"); 
    myWin.focus(); 
}); 

和下面的錯誤TypeError: myWin is undefined

我使用了$(document).ready()等,但效果相同。

線索是,在我的網站上我有一個ajax腳本。這個按鈕和函數也由ajax加載。

任何人都知道爲什麼這不起作用?

+0

'var myWin = window.open(「http://www.stackoverflow.com」);' – urbz 2014-09-10 12:06:32

+0

你有沒有彈出式窗口攔截器?順便說一句,不要使用「myWin = ...」,但「var myWin = ...」。 – 2014-09-10 12:06:42

+0

你在哪裏聲明myWin?請記住,您應該指定'var'關鍵字。 – 2014-09-10 12:07:08

回答

4

你的第一個代碼正常。 請參閱http://jsfiddle.net/69a1cL1v/

這可能是彈出式窗口攔截器。

$('.opennewwindow').click(function(e) { 
    e.preventDefault(); 
    window.open("http://www.stackoverflow.com") 
    /*alert('its works');*/ 
}); 
+0

我一開始以爲這樣,但我做了一個測試頁面(除了上面的內容,我刪除了所有內容),它可以工作,打開一個窗口。 .. – user2363971 2014-09-10 12:39:45

0

工具>選項,內容區域,「啓用JavaScript」右側的「高級」按鈕應允許您選擇允許此行爲。如果你在Linux上,導航可能會稍有不同。

注意,通常認爲最好的做法是允許用戶選擇應該關注的窗口。

這是關於:配置你指的是:dom.disable_window_flip

在FF我能夠通過提供窗口的名稱和參數的選擇對window.open,然後調用焦點打開與焦點的新窗口。

var wi = window.open('http://www.stackoverflow.com', 'window_name', 'height=200,width=200'); 
wi.focus(); 

對於Chrome瀏覽器的支持,你必須檢查出:Google Chrome "window.open" workaround?

2

天哪我做了什麼!

我只是(在我的自定義jQuery腳本)重寫函數「打開」...我不知道爲什麼我這樣做(它是未使用的函數)。我爲這個麻煩感到抱歉。

+1

你應該在評論中添加你的觀點,並刪除這一個。這不是一個答案 – 2016-03-12 00:57:30