如果禁用javaScript,如何重定向?

时间:2010-03-22 00:25:23

标签: javascript redirect

我有一个严重依赖javaScript的网站。我创建了一个镜像站点,它包含所有JS以及需要删除JS的所有元素。如果用户没有启用javaScript,那么将用户重定向到镜像站点有什么好的,简单的方法?

我试过这个,但看起来不太好:

<noscript>
  <meta http-equiv="refresh" content="0; URL=nojs/index.php">
</noscript>

我还尝试将header-redirect放入noscript标签,但这不起作用。

6 个答案:

答案 0 :(得分:77)

<noscript>
    <p>This site is best viewed with Javascript. If you are unable to turn on Javascript, please use this <a href="http://sitewithoutjavascript.com">site</a>.</p>
</noscript>

有些人故意禁用Javascript,你可能想让他们有机会在重定向之前将其打开。

答案 1 :(得分:47)

使用我提出的代码:

<noscript>
  <style>html{display:none;}</style>
  <meta http-equiv="refresh" content="0.0;url=nojs/index.php">
</noscript>

它使用样式来阻止页面上的内容,以便人们在重定向之前不会注意到任何内容。唯一令我烦恼的是我想要比元刷新更好的东西,因为在IE等浏览器上可以阻止它。 PHP标头实际上不是一个解决方案,因为你不能将它放在noscript标签中,因为它会忽略它并立即写出来。

答案 2 :(得分:22)

将网站的无JavaScript版本设为默认版本。在那里包含一个小脚本以重定向到脚本站点。

或者,完全放弃使用重定向并使用Progressive Enhancement

答案 3 :(得分:15)

你对“不太好”的定义是什么?

我的所有网站都使用:

<noscript>
  <meta http-equiv="refresh" content="0; url=http://www.sadtrombone.com/" />
</noscript>

答案 4 :(得分:6)

我不会进行客户端重定向,因为这对用户来说似乎很烦人。相反,我要做的是使用<noscript>在同一页面上显示这个无JS站点的内容。这可能是更多的工作,但它肯定会是一个更顺畅的经验。

答案 5 :(得分:2)

我提出了一个比重定向用户更好的解决方案,因为可以在IE中禁用元刷新。

把它放在HEAD中:

<style>div#body{display:none;}</style>

把它放在BODY中:

<noscript>NO JAVASCRIPT CONTENT HERE</noscript>

<noscript><div id="body"></noscript>JAVASCRIPT CONTENT HERE<noscript></div></noscript>

这样标签就是他们想要的地方。