对于不支持
JavaScript的访问者,我将它们重定向到某个页面 – “js.html”.
<noscript> <Meta http-equiv="Refresh" content="0;URL=js.html" /> </noscript>
当然,这不会在XHTML中验证,因为noscript必须放在< body>中.
但是当我将该代码放在我的文档正文中时,我会收到另一个错误,因为元标记只能在< head>中使用.部分,所以我在这里陷入无限循环.
有没有办法进行验证?它适用于所有浏览器,所以这不是什么大问题,我只是想验证我的应用程序.
解决方法
这是你可以做的:
将元数据插入你的脑袋,但刷新让我们说2秒钟.并且在那个地方旁边有一个删除元刷新的SCRIPT标记.所以任何JS用户都不会被重定向:
<Meta id="refresh" http-equiv="Refresh" content="10;URL=js.html" /> <script type="text/javascript"> $('refresh').remove(); </script>
浏览器可能已经“提到”了元刷新.因此,你可以使用JavaScript来编写一个开始和结束的HTML注释(包括一个打开的脚本标记来关闭第二个document.write的脚本标记):
<script type="text/javascript"> document.write("<!-- "); </script> <Meta http-equiv="Refresh" content="2;URL=js.html" /> <script type="text/javascript"> document.write(' --><script type="text/javascript">'); </script>
我可以成功测试这个.
只是暗示我如何处理非js用户.我有一个名为“js”的css类,我添加到任何应该只对javascript用户可见的元素.通过javascript我添加一个css文件,其中包含类“js”的规则,该规则显示具有“js”类的每个元素.所有链接(功能)都是设计的,可以在没有javascript的情况下使用,也可以在按住CTRL的同时单击链接的新选项卡中使用.