Вывод Javascript-сообщений через HTTP заголовок в PHP скриптах
Давече программил и нашел у себя в запасниках следующую неочевидную возможность, которую можно применять при разработке скриптов.
Допустим, Вам нужно выдать сообщение на экран посетителю после выполнения какого-либо действия, можно сделать это разными способами, этот способ как мне кажется не самый обычный, тем и интересен.
Обычно сообщение выдается как минимум где-то в коде выдаваемой страницы, а можно его запихнуть в HTTP-заголовок при помощи функции header(). Заголовок нам понадобится Refresh (заставляет браузер обновить страницу по заданному адресу через заданное количество секунд).
К слову, заголовок Refresh не входит в стандарт HTTP, однако практически все браузеры его поддерживают. Поэтому я считаю, мы правомочны его поюзать.
Пример кода:
<?php
header("Refresh: 0; URL=javascript:alert('В корзину добавлено 2 позиции на сумму 34.50 руб');");
?>
<html>
... здесь код страницы ...
</html>
Это говорит браузеру, что нужно через 0 секунд после загрузки страницы сделать обновление страницы (рефреш) на страницу по адресу "javascript:alert('В корзину добавлено 2 позиции на сумму 34.50 руб');", что по сути является не страницей, а выполняемым кодом Javascript. Таким образом, если включен Javascript, то он выполняется, а никакого перехода на другую страницу не выполняется.
В принципе таким способом можно выполнять любой Javascript-код, алерты это просто что первое напрашивается на ум.
Примечание: Javascript конечно может не поддерживаться какими-либо браузерами или быть отключен, но на все случаи жизни не напасешься кода
Постоянная ссылка ·
Добавьте на news2.ru
Похожие записи:
- Чем паковать жабу
- Изучение XSLT, серия 2
- По следам Аякса, часть 1
- Имитируем ошибки веб-сервера
- Примеры регулярных выражений



Dennion said,
Октябрь 16, 2006 @ 23:54
Ха прикольно, надо учесть в своих разработках
SM said,
Октябрь 17, 2006 @ 00:05
Интересно, а Гугл спалит такое выполнения джаваскрипта или нет
Mikhail said,
Октябрь 17, 2006 @ 00:12
2SM: с одной стороны это редирект по идее. На джаваскрипт. С другой стороны - в джаваскрипте редиректа нет никакого.
Да и ещё - вряд ли гугль попадет на такой редирект по ссылкам, я думаю целесообразно такие алерты делать в ответ на какое-то действие пользователя.