Откройте несколько окон после проверки состояния PHP - PullRequest
0 голосов
/ 12 ноября 2010

у меня есть файл 1.html:

.....


 <script src="/libs/jquery-1.3.1.min.js" type="text/javascript"></script>
    <script type="text/javascript">
    var url0='{$url0}';
    var url1='{$url1}';
    var url2='{$url2}';
    var url3='{$url3}';
    var OPEN_ON = false;
    openurls= function(){
    if(confirm('Opens all?') && OPEN_ON == false){
                    OPEN_ON = true;
    $.ajax({<br/>
        type: "POST",
        url: "a1.php",
        data: jsonData,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) {
            success = true;

        },
        error: function(msg) {

        }
    })

    if(success) { 
     window.open(url0)
     window.open(url1)
    window.open(url2)
    window.open(url3) 
    }


                 setTimeout("location.reload(true);",3000) 

                    OPEN_ON = false
                }
                return false

    }

Вопрос:
Как мне отправить url0, url1, url2 и url3 в файл a1.php и там после проверки некоторых условий отправить их обратно. enter code here

1 Ответ

0 голосов
/ 12 ноября 2010

Вам просто нужно поместить эти window.open() вызовы в функцию обратного вызова «success:».

Теперь, как только вы это сделаете, вы обнаружите, что новыйокна на самом деле не открываются.Браузеры собираются заблокировать их, потому что они выглядят как агрессивные всплывающие окна с рекламой.Поскольку эти window.open вызовы происходят в контексте, отличном от прямого инициируемого пользователем события (например, нажатие кнопки), они будут заблокированы.Тем не менее, вот как должна выглядеть ваша «функция успеха»:

$.ajax({<br/>
    type: "POST",
    url: "a1.php",
    data: { url0: url0, url1: url1, url2: url2, url3: url3 },
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(msg) {
      window.open(url0);
      window.open(url1);
      window.open(url2);
      window.open(url3);
    },
    error: function(msg) {

    }
})

Она будет «работать», поскольку будут выполняться вызовы window.open(), но она не будет «работать», если вы выигралине получаю всплывающие окна.Вы должны сделать так, чтобы активность пользователя («щелчок» где-то) открывала окна, а не изменение состояния XMLHttpRequest.

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