2011-01-11 185 views
0

由於一個真的笨重CMS的限制,我無法使用解除封鎖window.open彈出窗口?

target="_blank" 

,以在新窗口打開鏈接。所以我想,我唯一真正的解決辦法是指向一個打開新窗口的中間頁的鏈接,然後將當前窗口重定向回原始頁面...所以像這樣:

window.open ("http://www.NewPage.com/"); 
window.location = "http://www.OldPage.com/"; 

當然,大多數瀏覽器會阻止window.open方法......所以我的選擇是什麼?當然,有一些聰明的Javascript欺騙來解決這個問題。

回答

1

沒有選項。你無法做到這一點,並有充分的理由。

當調用它的代碼處理諸如「click」之類的事件時,瀏覽器將只允許window.open()工作。在這種情況下,瀏覽器假定該頁面提供了一個可點擊的元素,並且用戶知道會出現一個彈出窗口。如果頁面僅從直接腳本代碼,「準備好」或「加載」事件處理程序或XMLHttpRequest回調等某些上下文中爲新窗口調用window.open(),那麼瀏覽器假定彈出窗口可能會令人討厭。

某些瀏覽器允許用戶放寬這些規則,但您的代碼無法強制執行此操作。

0

你可能只需要在頁面上注入一個iframe並將其放置在所有內容上,但我真的不會推薦它。

在一天結束時,瀏覽器將控制是否允許window.open,所以我不打算試圖找到解決方案。

相關問題