对于不支持 JavaScript 的访问者,我将他们重定向到某个页面 - “js.html”。
为此,我的所有文件中都有以下内容:
<noscript>
<meta http-equiv="Refresh" content="0;URL=www.jb51.net" />
</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,我添加了一个包含“js”类规则的css文件,该文件显示了“js”类的每个元素。所有链接(功能)都是经过设计的,它们可以在没有 javascript 的情况下使用,也可以在按住 CTRL 的同时单击链接的新选项卡中使用。
关于xhtml - 如何在 xHTML 中验证 noscript+meta refresh 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3610030/