как открыть новое окно через JavaScript, когда всплывающее окно заблокировано - PullRequest
4 голосов
/ 25 июня 2009

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

Ответы [ 5 ]

7 голосов
/ 25 июня 2009

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

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

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

7 голосов
/ 25 июня 2009

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

Javascript Modal Dialog

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

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

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

и т.д.

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

2 голосов
/ 25 июня 2009

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

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

1 голос
/ 25 июня 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>
0 голосов
/ 28 мая 2015

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...