2012-05-21 4 views
2

У меня есть этот код здесь:JavaScript окна кросс-браузер близко вопрос

<?php 
    error_reporting(0); 
    if(isset($_GET['bd'])){ 
?> 

<script> 
    window.close(); 
</script> 


<?php 

} 

, который работает нормально в Chrome, но не работает в FireFox. Есть ли известная проблема с этим? Как я могу заставить его работать последовательно над указанными браузерами?

+2

Вы видите ошибку в Javascript Console? – jrummell

+2

try ' ' – mgraph

+0

@mgraph Браузеры давно рассчитывали ожидать javascript в'

4

Для Firefox авторитетная ссылка MDN. Цитата оттуда:

Этот метод разрешен только для окон, открытых скриптом с использованием метода window.open. Если окно не было открыто скриптом, в консоли JavaScript появляется следующая ошибка: скрипты могут не закрывать окна, которые не были открыты скриптом.

Источник: https://developer.mozilla.org/en/DOM/window.close

Как ваш веб-страница была построена ServerSide и регулярно открыто, а не JavaScript, он не будет работать в вашем случае.

Обратите внимание также различное поведение в Internet Explorer:

Вызов метода window.close на окне не было открыто сценарий отображает диалоговое окно подтверждения. С помощью скрипта для закрытия последнего запущенного экземпляра Windows Internet Explorer открывается диалоговое окно подтверждения.

Так что это сработает, но с подтверждением.

Наконец, я протестировал его в Opera, и он работает даже на регулярно открытых окнах, как и вы сказали, что это происходит в Chrome.

+0

может быть неправильный код php – choppermio

+0

вы можете попробовать его в fire fox – choppermio

+0

@ user1244193 Да ладно, вы даже прочитали мой ответ? Согласно MDN, который является в основном документацией Firefox, реакция должна быть «Скрипты могут не закрывать окна, которые не были открыты скриптом». И это именно то, что говорит мой Firefox. Посмотрите консоль Tools-> Error (Ctrl + shift + J). – Imp

Смежные вопросы