window.open() 可谓是 弹窗广告的利器。
因此它被很多浏览器禁用了
在网页上打开新链接的方法:
1、window.open()
2、不支持的浏览器下采用插入一段a链接,对a链接执行点击,从而达到打开新链接的目的。
3、然而很悲剧的是,a标签并不是和按钮一样有onclick()事件的。
IE8和火狐中,
a标签的click事件跟页面跳转没有关系,要实现跳转必须鼠标去点
4、我们需要通过模拟事件来执行a标签点击。
openUrl: function(b) { if (/msie/g.test(navigator.userAgent.toLowerCase())) window.open(b, "_blank"); else { var c = a("<a href='" + b + "' target='_blank'>Game</a>").get(0), d = document.createEvent("MouseEvents"); d.initEvent("click", !0, !0), c.dispatchEvent(d) } },
代码解析:
(1)通过document.createEvent()
方法创建event对象,接收一个参数,即表示要创建的事件类型的字符串:
-
UIEvents(DOM3中的UIEvent)鼠标和键盘事件;
-
MouseEvents(DOM3中的MouseEvent)鼠标事件;
-
MutationEvents(DOM3中的MutationEvent)变动事件;
-
HTMLEvents(没有DOM3中对应的事件)HTML事件;
event.init......()
此类行的方法。
(3)触发事件。这需要使用dispatchEvent()
方法,接收一个参数,即表示要触发的event对象。