JS window.open()拦截问题解决方案

JavaScript022

JS window.open()拦截问题解决方案,第1张

使用js跳转的过程当中遇到了window.open()被chrome内核的浏览器拦截的问题。 出于安全考虑chrome浏览器会拦截掉非用户操作的行为,比如直接使用js跳转链接,这个行为不是用户的直接行为就会被chrome浏览器屏蔽掉。 比如我有一个click的事件 window.open()不是第一个执行的方法,它就会被屏蔽掉。 解决方案很简单,执行函数的时候,比如click,让window.open()先执行,打开一个空的窗口 然后再执行 在新打开的窗口当中读取网页内容。 这样就可以打开新窗口,并且不被chrome拦截了。

JS阻止关闭和跳转页面方法如下:

window.onbeforeunload = function(){

    return '要显示的提示内容'

}

onbeforeunload:在即将离开当前页面(刷新或关闭)时执行 JavaScript :

定义和用法

onbeforeunload 事件在即将离开当前页面(刷新或关闭)时触发。

该事件可用于弹出对话框,提示用户是继续浏览页面还是离开当前页面。

对话框默认的提示信息根据不同的浏览器有所不同,标准的信息类似 "确定要离开此页吗?"。该信息不能删除。

但你可以自定义一些消息提示与标准信息一起显示在对话框。

三种方法可以:

第一种、使用原生javascript的window.open()方法(大部分情况下会被浏览自阻止)

第二种、表单(form)提交,原理是指定表单的action为想要打开的URL地址,target设置为"_blank"不过表单提交的方法经很多。

第三种、超链接(<a>)被点击,用jquery的写法如下,注意最后openLink[0]是原生DOM对象被点击的(使用Jquery对象的话没反应)。