【问题标题】:how to open new window through javascript when pop up is blocked弹出窗口被阻止时如何通过javascript打开新窗口
【发布时间】:2010-11-05 19:49:09
【问题描述】:

当弹出窗口在 IE 和 Firefox 中被阻止时,如何通过 javascript 打开一个新窗口。

下面是代码:

<%@ Page language="c#" AutoEventWireup="false" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > 

<html>
  <head>
    <title>SessionRedirect</title>
    <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
    <meta name="CODE_LANGUAGE" Content="C#">
    <meta name=vs_defaultClientScript content="JavaScript">
    <meta name=vs_targetSchema content="http://schemas.microsoft.com/intellisense/ie5">
  </head>
  <body MS_POSITIONING="GridLayout">

    <form method="post" name="frmRedirect">   
        <input type="hidden" name="email" value="<%=Session["Email"].ToString() %>" />
        <input type="hidden" name="pass" value="<%= Session["PWD"].ToString() %>" />
        <input type="hidden" name="User" value="<%= Session["User"].ToString() %>" />
    </form>

<script type="text/javascript"> 

    if(frmRedirect.User.value == "P")
    {
        window.open("", "Partner", "height=650,width=1075,left=100,top=100,status=1,scrollbars=1,location=1,toolbar=1;resizable=1");
        frmRedirect.target="Partner";       
        frmRedirect.action = "http://pli.cmsstag/partnerzone/index.aspx";
        document.frmRedirect.submit(); 
        location.replace("index.aspx");
    }
    else
    {
        window.open("", "Student", "height=650,width=1075,left=100,top=100,status=1,scrollbars=1,location=1,toolbar=1;resizable=1");
        frmRedirect.target="Student";
        frmRedirect.action = "http://pli.cmsstag/studentzone/index.aspx";
        document.frmRedirect.submit(); 
        location.replace("index.aspx");
    }   

</script>

<%
    Session.Remove("registration");
    Session.Remove("User");
    Session.Remove("UserId");
    Session.Remove("UserLoggedIn");
    Session.Remove("AgentCode");
    Session.Abandon();
%>

  </body>
</html>

上述所有代码都可以正常工作,直到浏览器阻止了弹出窗口。我正在尝试通过window.open打开新窗口,请看上面的代码。我希望窗口在任何情况下都应该打开,如果有弹出阻止程序它也应该打开。 请帮忙!

【问题讨论】:

    标签: javascript popup


    【解决方案1】:

    试试这个,

    $('#myButton').click(function () {
        var redirectWindow = window.open('http://google.com', '_blank');
        redirectWindow.location;
    });
    

    这个http://jsfiddle.net/safeeronline/70kdacL4/2/的Js Fiddle

    【讨论】:

      【解决方案2】:

      最简单的方法是将其绑定到按钮单击。无需添加代码,它旨在防止人们做不正当的事情(例如关闭时弹出窗口或大量弹出窗口)。

      如前所述,jQuery 可以为您提供“弹出”或模式对话框,但不能很好地按照 OP 的要求打开“新窗口”。

      【讨论】:

        【解决方案3】:

        弹出窗口阻止程序仅阻止意外弹出窗口。

        如果您的弹出窗口在处理来自用户的点击事件时显示,您的弹出窗口可能不会被弹出窗口阻止程序阻止。

        因此,只要您的用户单击按钮或链接打开弹出窗口,就可以使用当前的弹出窗口阻止程序。

        【讨论】:

          【解决方案4】:

          由 window.open 创建的弹出窗口可能会被弹出窗口阻止程序阻止。你可以添加一个新的 div 层来解决这个问题。

          Javascript Modal Dialog

          div 弹出窗口的一些问题是

          。下拉列表阻碍了这些弹出窗口。

          。在窗口调整大小时必须更改位置

          在上面的页面中,许多 div 弹出问题已经解决。

          【讨论】:

          • @Manoj -- 如果你不反对框架,你可以使用 jQuery UI 对话框小部件。
          【解决方案5】:

          div 想法的代码:

          <div style="display:none; position: absolute;z-index:99" id="display">you div info here</div>
          
          
          <script langauge="javascript">
          
          function showPopup ()
          {
            var div = document.getElementById("display");
          
            div.style.display = "inline";
          
            div.style.top = 20;
            div.style.left = 233;
          
          
          }
          
          </script>
          

          【讨论】:

          • 如果你想处理选择框,那么你必须添加额外的代码
          • 嗨,凯文,请参阅我上面的代码,任何使用上面代码的建议。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-10-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多