我有一个严重依赖javaScript的网站。我创建了一个镜像站点,它包含所有JS以及需要删除JS的所有元素。如果用户没有启用javaScript,那么将用户重定向到镜像站点有什么好的,简单的方法?
我试过这个,但看起来不太好:
<noscript>
<meta http-equiv="refresh" content="0; URL=nojs/index.php">
</noscript>
我还尝试将header-redirect放入noscript标签,但这不起作用。
答案 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>
这样标签就是他们想要的地方。