如何在xHTML中验证noscript +元刷新标记?

Jor*_*rre 7 xhtml xhtml-1.0-strict w3c-validation

对于不支持JavaScript的访问者,我将它们重定向到某个页面 - "js.html".

为此,我在所有文件中都有以下内容:

<noscript>
<meta http-equiv="Refresh" content="0;URL=js.html" />
</noscript>
Run Code Online (Sandbox Code Playgroud)

当然,这不会在XHTML中验证,因为必须放入noscript <body>.但是,当我将该代码放在我的文档正文中时,我得到另一个错误,因为元标记只能在该<head>部分中使用,所以我在这里陷入无限循环.

有没有办法进行验证?它适用于所有浏览器,所以这不是什么大问题,我只是想验证我的应用程序.

2nd*_*boy 12

这是你可以做的:

将元数据插入你的脑袋,但刷新让我们说2秒钟.并且在那个地方旁边有一个删除元刷新的SCRIPT标记.所以任何JS用户都不会被重定向:

<meta id="refresh" http-equiv="Refresh" content="10;URL=js.html" />
<script type="text/javascript">
    $('refresh').remove();
</script>
Run Code Online (Sandbox Code Playgroud)

浏览器可能已经"提到"了元刷新.因此,你可以使用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>
Run Code Online (Sandbox Code Playgroud)

我可以成功测试这个.

只是暗示我如何处理非js用户.我有一个名为"js"的css类,我添加到任何应该只对javascript用户可见的元素.通过javascript我添加一个css文件,其中包含类"js"的规则,该规则显示具有"js"类的每个元素.所有链接(功能)都是另外设计的,它们可以在没有javascript的情况下使用,也可以在按住CTRL的同时单击链接的新选项卡中使用.