Я пытаюсь сделать модальное отображение на экране пользователя, если они используют Google Chrome. У меня есть нулевое представление о том, что я делаю. Я знаю, что я правильно определяю браузер, но я не знаю, как открыть модальность. Модаль открывается, если я помещаю оператор if/else в комментарий, но это означает, что он откроется в каждом браузере.
<?php
$browser = get_browser(null, true);
$detectBrowser = strtolower($browser['browser']);
if ($detectBrowser == "chrome") {
header("Location: #BrowserWindow");
}
else {
}
?>
В организме:
<div id="BrowserWindow" class="modalDialog">
<div>
<a href="#close" title="Close" class="close">X</a>
<h2>Modal Box</h2>
<p>This is a sample modal box that can be created using the powers of CSS3.</p>
<p>You could do a lot of things here like have a pop-up ad that shows when your website loads, or create a login/register form for users.</p>
</div>
</div>
CSS:
.modalDialog {
position: fixed;
font-family: Arial, Helvetica, sans-serif;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: rgba(0,0,0,0.8);
z-index: 99999;
opacity:0;
-webkit-transition: opacity 400ms ease-in;
-moz-transition: opacity 400ms ease-in;
transition: opacity 400ms ease-in;
pointer-events: none;
}
.modalDialog:target {
opacity:1;
pointer-events: auto;
}
.modalDialog > div {
width: 400px;
position: relative;
margin: 10% auto;
padding: 5px 20px 13px 20px;
border-radius: 10px;
background: #fff;
background: -moz-linear-gradient(#fff, #999);
background: -webkit-linear-gradient(#fff, #999);
background: -o-linear-gradient(#fff, #999);
}
.close {
background: #606061;
color: #FFFFFF;
line-height: 25px;
position: absolute;
right: -12px;
text-align: center;
top: -10px;
width: 24px;
text-decoration: none;
font-weight: bold;
-webkit-border-radius: 12px;
-moz-border-radius: 12px;
border-radius: 12px;
-moz-box-shadow: 1px 1px 3px #000;
-webkit-box-shadow: 1px 1px 3px #000;
box-shadow: 1px 1px 3px #000;
}
.close:hover { background: #00d9ff; }
Модаль, очевидно, просто для теста. Когда я загружаю его в Google Chrome, он говорит: "Эта веб-страница имеет цикл перенаправления".
Взгляните на http://www.php.net/manual/en/function.header.php. Функция заголовка предназначена для отправки заголовков HTTP, таких как 404, или перенаправления на специальную страницу. Вы пытаетесь получить доступ к содержимому страницы с заголовком, что в принципе невозможно.
PHP - это серверный язык и не может вмешиваться в ваш html после отправки.
Вместо этого попробуйте написать в своем html браузере, чтобы открыть ваш модальный код в JS.
echo "var browser = ".$detectBrowser;
а затем написать JS
@+
Проблема в том, что вы пытаетесь перенаправить через header() в #BrowserWindow. Поскольку вы не вызываете путь на веб-сервере, вы застреваете в цикле переадресации (поскольку функция header() ищет ресурс на сервере, и вы пытаетесь открыть его на своей странице), Дополнительная информация о заголовке(): http://www.php.net/manual/en/function.header.php
Лучше всего было бы записать его в Javascript и открыть его для обнаружения. Вот учебник, который поможет вам начать работу: http://raventools.com/blog/create-a-modal-dialog-using-css-and-javascript/
Заголовок местоположения вызывает перенаправление при каждой загрузке страницы в хроме, даже если якорь уже отображает #BrowserWindow. Это вызывает цикл перенаправления.
К сожалению, часть хэша (#) URL-адреса никогда не отправляется на сервер, поэтому вы не можете проверить это, если хотите.
Вам придется использовать javascript, и это намного лучший способ сделать это в любом случае.