2009-06-25 3 views
4

Comment puis-je ouvrir une nouvelle fenêtre via javascript lorsque popup est bloqué dans IE et Firefox.comment ouvrir une nouvelle fenêtre via javascript lorsque pop-up est bloqué

est Ci-dessous le 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> 

tout le code ci-dessus fonctionne bien, jusqu'à ce que le navigateur a bloqué le menu contextuel. J'essaie d'ouvrir une nouvelle fenêtre via window.open, s'il vous plaît voir le code ci-dessus. Je veux que la fenêtre devrait s'ouvrir dans tous les cas, s'il y a un bloqueur de pop-up, il devrait aussi s'ouvrir. S'il vous plaît aider!

Répondre

7

Les fenêtres contextuelles créées par window.open peuvent être bloquées par des bloqueurs de fenêtres contextuelles. Vous pouvez ajouter une nouvelle couche div qui agit comme une fenêtre contextuelle pour résoudre ce problème.

Javascript Modal Dialog

Certains des problèmes avec div pop ups sont

. listes déroulantes viennent à la façon de ces pop-ups.

. sur la fenêtre redimensionner la position doit être changé

etc

Dans la page ci-dessus la plupart des problèmes avec un pop-up div a été résolu.

+0

merci, je peux avoir un code pour question ci-dessus. –

+3

@Manoj - Si vous n'êtes pas opposé aux frameworks, vous pouvez utiliser le widget de dialogue jQuery UI. – tvanfosson

+0

salut phoenix, s'il vous plaît voir le code ci-dessus –

1

Code pour l'idée 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> 
+0

Si vous voulez prendre soin des boîtes de sélection, alors vous devez code supplémentaire – rahul

+0

Salut Kevin, s'il vous plaît voir mon code ci-dessus toutes les suggestions en utilisant le code ci-dessus. –

7

bloqueurs de popups ne bloquent popups non intentionnelles.

Si votre fenêtre contextuelle s'affiche lors du traitement d'un événement de clic de la part de l'utilisateur, votre fenêtre contextuelle peut ne pas être bloquée par le bloqueur de fenêtres pop-up.

Donc, tant que votre utilisateur clique sur un bouton ou un lien pour ouvrir la fenêtre contextuelle, il va bien avec les bloqueurs de popups actuels.

2

Le moyen le plus simple est de l'attacher à un clic de bouton. Aucun code supplémentaire requis, et il est conçu pour empêcher les gens de faire des choses ombragées (comme les popups à proximité, ou un grand nombre de popups). JQuery, comme mentionné, pourrait vous permettre d'avoir un 'popup' ou un dialogue modal, mais ne servirait pas très bien à ouvrir une 'nouvelle fenêtre' comme demandé par l'OP.

Questions connexes