如何在弹出窗口被阻止时通过javascript打开新窗口

时间:2009-06-25 12:06:04

标签: javascript popup

如果在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打开新窗口,请看上面的代码。我希望窗口在任何情况下都应该打开,如果有弹出窗口阻止程序它也应该打开。 请帮忙!

5 个答案:

答案 0 :(得分:7)

window.open创建的弹出窗口可能被弹出窗口阻止程序阻止。您可以添加一个新的div层,其作用类似于弹出窗口来解决此问题。

Javascript Modal Dialog

div弹出的一些问题是

。下拉列表会妨碍这些弹出窗口。

。在窗口调整大小的位置必须改变

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

答案 1 :(得分:7)

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

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

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

答案 2 :(得分:2)

最简单的方法是将其绑定到按钮上。不需要添加代码,它旨在防止人们做一些阴暗的事情(比如关闭弹出窗口或大量弹出窗口)。

如上所述,jQuery可以为您提供“弹出窗口”或模态对话框,但不会像OP请求的那样打开“新窗口”。

答案 3 :(得分:1)

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>

答案 4 :(得分:0)

试试这个,

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

Js Fiddle for this http://jsfiddle.net/safeeronline/70kdacL4/2/