时间:2009-11-03 03:39:07

标签: php

如果用户禁用了javascript,我想将用户重定向到某个页面。我试过这段代码:

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

无济于事......

我该怎么做?

4 个答案:

答案 0 :(得分:19)

由于标题已经发送,您需要使用标准HTML标记:

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

在Firefox和IE上尝试这一点似乎运行良好...启用JavaScript后,<meta>标记将被忽略。禁用后,浏览器会重定向到noscript.html

答案 1 :(得分:5)

如果禁用了javascript,则无法进行重定向。为什么不这样做 - 如果启用了javascript则重定向?

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

答案 2 :(得分:2)

你不能使用元刷新标签,然后使用Javascript删除它,因为浏览器设置为在读取元刷新标签时重定向,而且JS为时太晚操作它。

唯一的方法是做丹尼尔建议的,或者在没有Javascript时显示链接:

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

或者您可以尝试优雅地失败:Do you plan for javascript being off?

答案 3 :(得分:0)

将它添加为你身体的第一个元素,设计它以适应它,并且可能在它内部提供一个链接到一个noscript页面:

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

我在一个客户端不允许我使用更复杂的方法的页面上使用了一个更详细的方法(基本上它使它看起来像一个模态对话框而且都很漂亮)。我已经在IE6 +和所有其他主流浏览器中进行了测试并取得了巨大的成功。