<noscript> перенаправление

Я хочу перенаправить пользователя на определенную страницу, если он / она отключен javascript. Я пробовал этот код:

<noscript><?php url::redirect('controller/method'); ?></noscript> // url::redirect is much like the location header 

но безрезультатно…

Как мне это сделать?

Вы не можете использовать тег meta refresh, а затем удалить его с помощью Javascript, потому что браузер настроен на перенаправление при чтении тега meta refresh, и слишком поздно для JS, чтобы манипулировать им.

Единственный способ – либо сделать то, что предложил Даниэль, либо показать ссылку, когда нет Javascript:

 <noscript> <a href="">Click here to continue</a> </noscript> 

Или вы можете попытаться потерпеть неудачу изящно: вы планируете отключить javascript?

Поскольку заголовки уже отправлены, вам нужно будет использовать стандартную разметку HTML:

 <noscript> <meta http-equiv="refresh" content="0;url=noscript.html"> </noscript> 

Попытка этого как в Firefox, так и в IE кажется хорошо работать … С включенным JavaScript тег <meta> игнорируется. Когда он отключен, браузер перенаправляется на noscript.html .

Невозможно сделать перенаправление на основе того, отключен ли javascript. Почему бы не сделать обратное – перенаправить, если включен javascript?

 <script> window.location = "..."; </script> 

Добавьте это как первый элемент в вашем теле, настройте его по своему вкусу и, возможно, предложите ссылку внутри него на страницу noscript:

 <div onload="return false;"> <!-- PAGE CONTENTS --> </div><noscript>JAVASCRIPT IS REQUIRED TO VIEW THIS PAGE</noscript> 

Я использую более подробный метод этого (что в основном делает его похожим на модальный диалог и все красивым) на страницах, где клиент не позволяет мне использовать более совместимые средства. Я испытал в IE6 + и всех других крупных браузерах с большим успехом.