2009-06-25 7 views
4

Wie kann ich ein neues Fenster über Javascript öffnen, wenn das Popup in IE und Firefox blockiert ist?Wie öffne ich ein neues Fenster über Javascript, wenn das Popup blockiert ist?

Unten ist der Code:

<%@ 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> 

alle oben genannten Code funktioniert gut, bis der Browser das Fenster blockiert wurde. Ich versuche, ein neues Fenster durch window.open zu öffnen, siehe obigen Code. Ich möchte auf jeden Fall das Fenster öffnen, wenn es einen Popup-Blocker gibt, sollte es sich auch öffnen. Bitte helfen!

Antwort

7

Popups, die von window.open erstellt wurden, können durch Popup-Blocker blockiert werden. Sie können eine neue Div-Ebene hinzufügen, die sich wie ein Popup verhält, um dies zu lösen.

Javascript Modal Dialog

Einige der Probleme mit div Pop-ups sind

. Dropdown-Listen kommen diesen Pop-ups in die Quere.

. auf Fenstergröße ändert die Position

etc

In der oben genannten Seite viele der Probleme mit div Pop-up gelöst wurde geändert werden muss.

+0

Dank, kann ich Code für oben genannte Problem. –

+3

@Manoj - Wenn Sie Frameworks nicht abgeneigt sind, können Sie das jQuery UI-Dialog-Widget verwenden. – tvanfosson

+0

hallo phoenix, bitte siehe obigen Code –

1

-Code für die div Idee:

<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> 
+0

Wenn Sie auf ausgewählte Felder achten möchten, dann müssen Sie zusätzlichen Code – rahul

+0

Hallo Kevin, bitte beachten Sie meine obigen Code irgendwelche Vorschläge mit obigen Code. –

7

Popup-Blocker nur unbeabsichtigte Popups blockieren.

Wenn Ihr Popup während der Verarbeitung eines Klickereignisses vom Benutzer angezeigt wird, wird Ihr Popup möglicherweise nicht vom Popupblocker blockiert.

Solange Ihr Benutzer auf eine Schaltfläche oder einen Link klickt, um das Popup zu öffnen, wird es mit den aktuellen Popup-Blockern funktionieren.

2

Der einfachste Weg ist es, es mit einem Klick zu binden. Es ist kein zusätzlicher Code erforderlich, und es wurde entwickelt, um zu verhindern, dass Menschen zwielichtige Dinge tun (wie Popups beim Schließen oder eine große Anzahl von Popups).

jQuery, wie bereits erwähnt, könnte einen 'Popup' oder einen modalen Dialog erhalten, würde aber nicht sehr gut dazu dienen, ein 'neues Fenster' zu öffnen, wie das OP angefordert hat.

Verwandte Themen