1、window.open不開啟新視窗的原因:
某些瀏覽器爲了安全起見,可能會阻止window.open開啟的連結url。
2、解決方法:
需要用戶進行瀏覽器設定允許彈新頁,讓用戶設定瀏覽器是極不可取的做法,可以利用超連結開啟的url,利用超連結開啟的url是不會被攔截的。
3、window.open的用法容易忽視的細節:
window.open方法有三個參數:
window.open(url, [name], [configuration])
其中:
url, 爲要新開啟頁面的url
name,爲新開啟視窗的名字,可以透過此名字獲取該視窗對象
configuration,爲新開啟視窗的一些配置項,比如是否有選單欄、滾動條、長高等等資訊
例如,新開啟一個沒有選單欄、標題欄、工具欄,但是有滾動條、狀態欄、地址欄且可伸縮視窗的方法調用如下:
window.open("index.html","newWindow","menubar=0,scrollbars=1, resizable=1,status=1,titlebar=0,toolbar=0,location=1");
容易忽略的地方就是:
新開啟視窗名字可以是自訂的值,此外還可以是以下幾個值,與超連結a的target屬性值相同
視窗name值 | 描述 |
_blank | 默認的,在新視窗開啟連結的url |
_self | 在當前視窗開啟連結url |
_parent | 在父視窗開啟連結url |
_top | 在頂級視窗開啟url |
framename | 在指定的框架中開啟連結url |
4、window.open開啟新視窗還是開啟新頁籤:
調用window.open是開啟新視窗,還是開啟新頁籤,其實沒有什麼要緊關係,但是有些需求在這方面有很強的意願時,就得區分一下,具體的開啟什麼要根據具體情況來定。
window.open(url)或者window.open(url, name),其中name爲_blank
標準瀏覽器、IE9+是新標籤開啟連結url
ie6-8是新視窗開啟連結url
window.open(url, name),其中name爲非_blank的其他4個值
此時會會在指定視窗或者frame開啟連結url
window.open(url, name, configration)
只要配置了configration,所有瀏覽器都是新視窗開啟連結url