2011-06-24 50 views
4

我用下面嘗試在IE創建一個彈出9如何從Internet Explorer創建一個彈出窗口,9

function popUp(url) { 
    day = new Date(); 
    id = day.getTime(); 
    eval("page" + id + " = window.open(url,'" + id + "','toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=600,height=520,left = 400,top = 200');"); 
    return false; 
} 

這在Chrome中工作正常,Firefox和Safari瀏覽器 - 但IE 9拒絕打開一個彈出窗口 - 而不是在新選項卡中打開該網址。我已禁用IE9中的彈出窗口阻止程序 - 但上面的函數仍然在新選項卡中打開網址,而不是在彈出窗口中。

有關如何讓IE9彈出的任何建議?

+0

http://www.ghacks.net/2010/10/03/internet-explorer-9-tabbed-browsing-settings/說,這是是否彈出窗口在窗口或標籤頁中打開IE 9中的用戶選擇。可能無法覆蓋用戶設置的內容,因此不應該有任何方法,因爲沒有更好的方式來疏遠用戶,而不是強制他們不想要的瀏覽器行爲。僅供參考,Firefox還可以選擇在新選項卡中打開彈出窗口。 – GordonM

+0

事實上 - 這就是它 - 在常規選項卡的Internet選項 - 爲標籤設置 - 「當遇到彈出:」 - 有選項來創建一個彈出窗口或標籤。 –

回答

3

此代碼似乎在IE9工作(只是檢查 - 打開一個新窗口,而不是一個標籤):

function popUp(url) { 
    day = new Date(); 
    id = day.getTime(); 
    eval("page" + id + " = window.open(url,'" + id + "','_blank','toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=600,height=520,left = 400,top = 200');"); 
    return false; 
} 

我認爲它可能有一些做指示窗口名稱,它是由不同現有的窗口。

+0

感謝您的測試。我已經嘗試過上述功能,它仍然依賴於Internet Explorer選項卡設置。 Internet選項>選項卡>設置>'讓Internet Explorer決定如何打開彈出式窗口'或'始終在新窗口中打開彈出窗口'可以使用任一功能。如果「始終在新標籤中打開彈出窗口」已設置 - 則不會強制打開新窗口。 –

+0

我想,如果用戶明確設置「總是在新標籤頁中打開」,那麼您就沒有任何方法可以覆蓋它。畢竟,JavaScript是客戶端,客戶端可以控制什麼是允許的,哪些不是。 –

3

當用戶「讓Internet Explorer的決定彈出式廣告應該如何開放」,這是默認的,設置調整= Yes,將IE9打開一個標籤,並調整大小=沒有將允許彈出。這可能與我沒有測試過的其他屬性相同。