隐藏

js 实现弹出新窗口,但是不被浏览器阻止

发布:2014/4/15 23:28:26作者:管理员 来源:本站 浏览次数:1738

js 实现弹出新窗口,但是不被浏览器阻止

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>无标题页</title>
</head>
<body>


<form id="EmailForm" action="default.aspx" method="get" target="_blank">
<input id="emailid" name="1"  type="hidden" value="123" />//隐藏域,用来放需要传递的参数
</form>


<script>
document.getElementById("EmailForm").action="/default2.aspx?ddd="    //这个js可以更换提交地址
document.getElementById("EmailForm").submit();
</script>


</body>
</html>

 

 

 

 

 

 

有时候希望可以用js另开新窗口,但用 window.open方法打开窗口总是被浏览器阻止,

可以用下面的方法打开新窗口而不会遭到拦截

1.新添加一个Form

<form id="EmailForm" action="目标页" method="get" target="_blank">
<input id="emailid" name="emailid"  type="hidden" />//隐藏域,用来放需要传递的参数
</form>

注意form的target属性要设置成 _blank

2.提交这个Form

function btnEditEmail_onclick() {
document.getElementById("emailid").value=id;//初始隐藏域
document.getElementById("EmailForm").submit();//提交
}

这样,就会打开新窗口定向到目标页了,而且不会 被阻止,同时用新窗口的window.opener还能访问 原窗口。

PS: 思维的巧妙转换,如同利用 iframe 进行本页无剧新提交数据.

<form method="post" target="ifmPost" action="http://www.example.org/ifmpost.php" id="ifm_php"> 
</form>
<iframe id="ifmPost" name="ifmPost" src="about:blank" frameborder="0" scrolling="no" width="0" height="0" style="display:none;"></iframe>