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

如何在弹出窗口被阻止时通过javascript打开新窗口,javascript,popup,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>

当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>

会话重定向
if(frmRedirect.User.value==“P”)
{
打开(“,”合作伙伴“,”高度=650,宽度=1075,左侧=100,顶部=100,状态=1,滚动条=1,位置=1,工具栏=1;可调整大小=1”);
frmRedirect.target=“合作伙伴”;
frmRedirect.action=”http://pli.cmsstag/partnerzone/index.aspx";
document.frmRedirect.submit();
位置。替换(“index.aspx”);
}
其他的
{
打开(“,”学生“,”高度=650,宽度=1075,左侧=100,顶部=100,状态=1,滚动条=1,位置=1,工具栏=1;可调整大小=1”);
frmRedirect.target=“学生”;
frmRedirect.action=”http://pli.cmsstag/studentzone/index.aspx";
document.frmRedirect.submit();
位置。替换(“index.aspx”);
}   
在浏览器阻止弹出窗口之前,上述所有代码都可以正常工作。我正在尝试通过窗口打开新窗口。打开,请查看上面的代码。我希望窗口应该在任何情况下打开,如果有弹出窗口拦截器,它也应该打开。
请帮忙

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

div弹出窗口的一些问题是

。下拉列表以这些弹出窗口的方式出现

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

在上面的页面中,许多与div弹出窗口有关的问题已经解决。

div idea的代码:

<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>
您可以在这里查看div信息
函数showPopup()
{
var div=document.getElementById(“显示”);
div.style.display=“inline”;
div.style.top=20;
div.style.left=233;
}

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

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


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

最简单的方法是将其与按钮单击绑定。不需要额外的代码,它的设计是为了防止人们做一些不光彩的事情(比如关闭时的弹出窗口,或者大量的弹出窗口)

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

试试这个

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

Js Fiddle for this

如果你想处理选择框,那么你必须使用额外的代码嗨,凯文,请查看我的上述代码使用上述代码的任何建议。@Manoj--如果你不反对框架,你可以使用jQuery UI对话框小部件。