使用javascript打开一个新页而不被浏览器屏蔽

时间:2024-09-20 09:05:14

使用javascript打开一个新页面可以有几种方式,但各有利弊,以下做下分析

1.window.open(url)

这是新手最常用的方法,好处是简单易用,坏处,很简单,会被很多浏览器拦截而导致功能失效

2.使用js在页面创建一个a标签,然后点击它

示例代码如下:

                var a = document.getElementById("entergameform1001");
if(!a){
$(document.body).append('<a id="entergameform1001" href="' + url + '" target="_blank"></a>');
a = document.getElementById("entergameform1001");
}else{
$(a).attr("href",url);
}
a.click();

优点,不会被浏览器拦截,但是两个窗口交互的话,会找不到window.owner

3.使用js创建一个form表单,模拟表单提交

示例代码如下:

                var form = document.getElementById("entergameform1001");
if(!form){
$(document.body).append('<form id="entergameform1001" action="' + url + '" method="get" target="_blank"></form>');
form = document.getElementById("entergameform1001");
}else{
$(form).attr("action",url);
}
form.submit();

优点:相关a标签,页面可以获取window.owner。缺点:使用get方式,在部分浏览器中,url里的参数会被过滤掉,必须使用input值来传递。使用post提交时,会被浏览器拦截