как открыть новое окно через javascript, когда всплывающее окно заблокировано

Как я могу открыть новое окно через javascript, когда всплывающее окно заблокировано в IE и Firefox.

Ниже приведен код:

<%@ 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, пожалуйста, посмотрите приведенный выше код. Я хочу, чтобы окно открывалось в любом случае, если есть блокировщик всплывающих окон, оно тоже должно открываться. Пожалуйста помоги!


person Manoj Singh    schedule 25.06.2009    source источник


Ответы (5)


Всплывающие окна, созданные window.open, могут блокироваться блокировщиками всплывающих окон. Вы можете добавить новый слой div, который будет действовать как всплывающее окно, чтобы решить эту проблему.

Модальное диалоговое окно Javascript

Некоторые из проблем с всплывающими окнами div:

. выпадающие списки появляются на пути этих всплывающих окон.

. при изменении размера окна необходимо изменить положение

и т.д

На приведенной выше странице решены многие проблемы с всплывающим окном div.

person rahul    schedule 25.06.2009
comment
@Manoj - если вы не против фреймворков, вы можете использовать виджет диалога jQuery UI. - person tvanfosson; 25.06.2009

Блокировщики всплывающих окон блокируют только непреднамеренные всплывающие окна.

Если ваше всплывающее окно отображается при обработке события щелчка от пользователя, ваше всплывающее окно не может быть заблокировано блокировщиком всплывающих окон.

Итак, пока ваш пользователь нажимает кнопку или ссылку, чтобы открыть всплывающее окно, все будет в порядке с текущими блокировщиками всплывающих окон.

person Vincent Robert    schedule 25.06.2009

Самый простой способ - привязать его к нажатию кнопки. Никакого дополнительного кода не требуется, и он разработан, чтобы люди не могли делать теневые вещи (например, всплывающие окна при закрытии или огромное количество всплывающих окон).

Как уже упоминалось, jQuery может вызвать всплывающее или модальное диалоговое окно, но не очень хорошо подходит для открытия «нового окна» в соответствии с запросом OP.

person Jeff    schedule 25.06.2009

Код для идеи 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>
person kemiller2002    schedule 25.06.2009
comment
Если вы хотите позаботиться о полях выбора, вам потребуется дополнительный код - person rahul; 25.06.2009
comment
Привет, Кевин, пожалуйста, просмотрите мой приведенный выше код, любые предложения с использованием приведенного выше кода. - person Manoj Singh; 25.06.2009

попробуй это,

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

Js Fiddle для этого http://jsfiddle.net/safeeronline/70kdacL4/2/

person Mohammed Safeer    schedule 28.05.2015