window.open在ios不打开新窗口

使用window.open(Url),在ios没有起作用,而且代码也没有报错,并且安卓不会有这个问题,

原因是:大部分现代的浏览器(Chome/Firefox/IE 10+/Safari)都默认开启了组织弹出窗口的策略,原因是window.open被广告商所滥用,严重影响用户的使用。

这个组织弹出窗口的操作,并不是直接封杀window.open(),而是根据用户的行为来判定这次操作是不是属于流氓操作。如果是用户自己的动作触发的window.open就不会被阻止,比如写在onclick事件中,但如果是代码自动触发就会被组织的。

Safari中无法open新窗口,原因是Safari的安全机制将其阻止,一些异步操作,比如ajax回调里面执行window.open就会失效,原因是代码自己自动执行的,被IOS的安全机制拦截!

解决方法:

使用window.location.href = Url;【或者使用window.location.replace()来替代当前的url】

posted @ 2019-12-10 17:27  china丶MRH  阅读(2842)  评论(0编辑  收藏  举报