解决JS弹出新窗口被浏览器阻止的解决方案

来源:互联网 发布:js校验非负正整数 编辑:程序博客网 时间:2024/06/06 04:06
本文转载自:http://blog.csdn.net/cntanghai/article/details/6643522在js中通过open弹出窗口可能会被阻止,我尝试这段代码:            var flag = window.open(url,"","");            if(flag==null) {               alert("您的浏览器启用弹出窗口过滤功能!\n\n请暂时先关闭此功能!") ;            }     上面这段代码仅仅是增加了一个提示,让用户更改浏览器设置.但实际上无任何作用.使用下面的解决方案后,在IE中测试,一般不会被阻止,即使被阻止,ie也会弹出让用户选择是否<pre name="code" class="html">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还能访问原窗口。  本段内容引自:http://hi.baidu.com/hy0kl/blog/item/486c01f31882e55c352acc1a.html  

允许弹出窗口.所以说这种解决方案是行之有效的.
我的代码:  <%@ page language="java" pageEncoding="utf-8"%>  <%@ include file="/summer/component/common/sys.jsp"%>  <%@ include file="/summer/jsp/head/taglibs.jsp"%>  <html>  <head>      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />      <link href="<c:url value='/css/css.css'/>" rel="stylesheet" type="text/css" />      <title>密码确认</title>  <script type="text/javascript">    function tijiao(){ // 提交      var password = document.getElementById("password").value;      var map = new Map();      map.put('key', 'maintain.checkPassWord');      map.put('password', password);      var query = new QueryObj(map, chakanHeTongjiCallback);      query.send();   }  function chakanHeTongjiCallback(query) {      if(query.getDetail()=='false'){           alert('密码输入错误,请重试!');           return;      }      var type = document.getElementById("type").value;      var cpbbh = document.getElementById("cpbbh").value;      var plx = document.getElementById("plx").value;      if(type=='1') { // 投票详情          toupiao(cpbbh,plx);      }else if(type=='2') { //统计          var submitForm =  document.getElementById("tongjiForm");          submitForm.submit();          window.close();      }      }      function toupiao(cpbbh,plx){      var map = new Map();      map.put('key', 'maintain.judge');      map.put('cpbbh', cpbbh);      map.put('plx', plx);          var query = new QueryObj(map, toupiaoCallback);      query.send();      }      function toupiaoCallback(query) {      if(query.getDetail()=='false'){          alert('该测评表没有任何参与投票信息');          return;      }      var submitForm =  document.getElementById("toupiaoxiangqingForm");      submitForm.submit();      window.close();      }      </script>  </head>    <body>  <center>    <div>   <div width="390"> </div>   <div width="390">请输入您的密码:</div>   <table>    <tr><td><input type="password" id="password" name="userPasWord" /></td></tr>   </table>  </div>  <br>  <br>  <div>   <input name="submit" type="submit" onclick="tijiao()" value="提交" class="anniu6" />                <input name="submit" type="button" onclick="window.close();" value="关闭" class="anniu6" />  </div>  <ui:hidden name="type" value="${type }"></ui:hidden>  <ui:hidden name="cpbbh" value="${cpbbh }"></ui:hidden>  <ui:hidden name="plx" value="${plx }"></ui:hidden>  </center>    <%-- 统计 --%>  <form action="../mzcp/voteDetail.do?action=statisticsVoteDetail" id="tongjiForm" method="post"  target="_blank">      <ui:hidden name="NCpbbh" value="${cpbbh }"></ui:hidden>      <ui:hidden name="NPlx" value="${plx }"></ui:hidden>  </form>  <%--投票详情 --%>  <form action="../mzcp/voteDetail.do?action=singleVoteDetail" id="toupiaoxiangqingForm" method="post"  target="_blank">      <ui:hidden name="NCpbbh" value="${cpbbh }"></ui:hidden>      <ui:hidden name="NPlx" value="${plx }"></ui:hidden>      <ui:hidden name="index" value="0"></ui:hidden>  </form>  </body>    </html>  




0 0
原创粉丝点击