window.open不打开新窗口怎么解决呢?不知道的小伙伴来看看小编今天的分享吧!
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 |
_ | 在顶级窗口打开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