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

  1. 在js中通过open弹出窗口可能会被阻止,我尝试这段代码:
  2. var flag = window.open(url,"","");
  3. if(flag==null) {
  4. alert("您的浏览器启用弹出窗口过滤功能!\n\n请暂时先关闭此功能!") ;
  5. }
  6. 上面这段代码仅仅是增加了一个提示,让用户更改浏览器设置.但实际上无任何作用.使用下面的解决方案后,在IE中测试,一般不会被阻止,即使被阻止,ie也会弹出让用户选择是否允许弹出窗口.所以说这种解决方案是行之有效的.
  7. ------------------------------------------------------------------------------
  8. 1.新添加一个Form
  9. <form id="EmailForm" action="目标页" method="get" target="_blank">
  10. <input id="emailid" name="emailid" type="hidden" />//隐藏域,用来放需要传递的参数
  11. </form>
  12. 注意form的target属性要设置成_blank
  13. 2.提交这个Form
  14. function btnEditEmail_onclick() {
  15. document.getElementById("emailid").value=id;//初始隐藏域
  16. document.getElementById("EmailForm").submit();//提交
  17. }
  18. 这样,就会打开新窗口定向到目标页了,而且不会被阻止,同时用新窗口的window.opener还能访问原窗口。
  19. 本段内容引自:http://hi.baidu.com/hy0kl/blog/item/486c01f31882e55c352acc1a.html
  20. ------------------------------------------------------------------------------
  21. 我的代码:
  22. <%@ page language="java" pageEncoding="utf-8"%>
  23. <%@ include file="/summer/component/common/sys.jsp"%>
  24. <%@ include file="/summer/jsp/head/taglibs.jsp"%>
  25. <html>
  26. <head>
  27. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  28. <link href="<c:url value='/css/css.css'/>" rel="stylesheet" type="text/css" />
  29. <title>密码确认</title>
  30. <script type="text/javascript">
  31. function tijiao(){ // 提交
  32. var password = document.getElementById("password").value;
  33. var map = new Map();
  34. map.put('key', 'maintain.checkPassWord');
  35. map.put('password', password);
  36. var query = new QueryObj(map, chakanHeTongjiCallback);
  37. query.send();
  38. }
  39. function chakanHeTongjiCallback(query) {
  40. if(query.getDetail()=='false'){
  41. alert('密码输入错误,请重试!');
  42. return;
  43. }
  44. var type = document.getElementById("type").value;
  45. var cpbbh = document.getElementById("cpbbh").value;
  46. var plx = document.getElementById("plx").value;
  47. if(type=='1') { // 投票详情
  48. toupiao(cpbbh,plx);
  49. }else if(type=='2') { //统计
  50. var submitForm = document.getElementById("tongjiForm");
  51. submitForm.submit();
  52. window.close();
  53. }
  54. }
  55. function toupiao(cpbbh,plx){
  56. var map = new Map();
  57. map.put('key', 'maintain.judge');
  58. map.put('cpbbh', cpbbh);
  59. map.put('plx', plx);
  60. var query = new QueryObj(map, toupiaoCallback);
  61. query.send();
  62. }
  63. function toupiaoCallback(query) {
  64. if(query.getDetail()=='false'){
  65. alert('该测评表没有任何参与投票信息');
  66. return;
  67. }
  68. var submitForm = document.getElementById("toupiaoxiangqingForm");
  69. submitForm.submit();
  70. window.close();
  71. }
  72. </script>
  73. </head>
  74. <body>
  75. <center>
  76. <div>
  77. <div width="390"> </div>
  78. <div width="390">请输入您的密码:</div>
  79. <table>
  80. <tr><td><input type="password" id="password" name="userPasWord" /></td></tr>
  81. </table>
  82. </div>
  83. <br>
  84. <br>
  85. <div>
  86. <input name="submit" type="submit" onclick="tijiao()" value="提交" class="anniu6" />
  87. <input name="submit" type="button" onclick="window.close();" value="关闭" class="anniu6" />
  88. </div>
  89. <ui:hidden name="type" value="${type }"></ui:hidden>
  90. <ui:hidden name="cpbbh" value="${cpbbh }"></ui:hidden>
  91. <ui:hidden name="plx" value="${plx }"></ui:hidden>
  92. </center>
  93. <%-- 统计 --%>
  94. <form action="../mzcp/voteDetail.do?action=statisticsVoteDetail" id="tongjiForm" method="post" target="_blank">
  95. <ui:hidden name="NCpbbh" value="${cpbbh }"></ui:hidden>
  96. <ui:hidden name="NPlx" value="${plx }"></ui:hidden>
  97. </form>
  98. <%--投票详情 --%>
  99. <form action="../mzcp/voteDetail.do?action=singleVoteDetail" id="toupiaoxiangqingForm" method="post" target="_blank">
  100. <ui:hidden name="NCpbbh" value="${cpbbh }"></ui:hidden>
  101. <ui:hidden name="NPlx" value="${plx }"></ui:hidden>
  102. <ui:hidden name="index" value="0"></ui:hidden>
  103. </form>
  104. </body>
  105. </html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值