js的window.open()改写

时间:2023-12-05 23:44:08

说明:window.open(url,"_blank")方法替换如下:

function openUrl(url) {
try {
if (/MSIE\s*(\d+\.\d+);/.test(navigator.userAgent) || /MSIE(\d+\.\d+);/.test(navigator.userAgent) || navigator.userAgent.indexOf('MSIE') >= 0 || navigator.userAgent.indexOf('msie') >= 0) {
var referLink = document.createElement('a');
referLink.href = url;
referLink.target = "_blank";
document.body.appendChild(referLink);
referLink.click();
} else {
var a = $("<a href='" + url + "' target='_blank'>download</a>").get(0);
var e = document.createEvent('MouseEvents');
e.initEvent('click', true, true);
a.dispatchEvent(e);
}
} catch (e) {
window.open(url);
}
}

简单的说就是构造 <a href="#" target="_blank">A标签打开新页</a> 这代码,然后模拟点击事件。这里仅仅是替换window.open()这方法。