Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XHTML中的noscript替代方案?_Html_Xhtml_Web Standards - Fatal编程技术网

XHTML中的noscript替代方案?

XHTML中的noscript替代方案?,html,xhtml,web-standards,Html,Xhtml,Web Standards,在HTML中,我可以做到: <noscript><link href="css/stylenojs.css" rel="stylesheet" type="text/css" /></noscript> 在XHTML过渡文档或严格文档中是否有一些兼容的方法可以做到这一点?您给出的示例在HTML和XHTML中都是无效的。除非启用了脚本,否则当前的建议不会提供包含样式表的方法 一般来说,您应该避免使用。从有效的东西开始,然后 在这种情况下,您可以为非JS客户

在HTML中,我可以做到:

<noscript><link href="css/stylenojs.css" rel="stylesheet" type="text/css" /></noscript>


在XHTML过渡文档或严格文档中是否有一些兼容的方法可以做到这一点?

您给出的示例在HTML和XHTML中都是无效的。除非启用了脚本,否则当前的建议不会提供包含样式表的方法

一般来说,您应该避免使用
。从有效的东西开始,然后

在这种情况下,您可以为非JS客户端编写样式表,然后:

<body>
<script type="text/javascript">document.body.className += ' js';</script>
或者,您可以执行以下操作:

<link href="css/stylenojs.css" rel="stylesheet" type="text/css" id="nojscss" />

目前选择的答案具有误导性

以及问题中提供的示例

:

noscript元素仅在HTML语法中有效,它没有 在XHTML语法中的效果。这是因为它的工作方式是 本质上,在启用脚本时“关闭”解析器,以便 元素的内容被视为纯文本,而不是真实的 元素。XML没有定义执行此操作的机制

现在,关于XHTML的一点是,除非文档在
应用程序/XHTML+XML
中作为MIME类型提供,否则浏览器不会在XML中处理XHTML


如果您的页面被用作适当的
XHTML
,那么解决方案可能是将页面的
doctype
更改为HTML5,将MIME类型更改为
text/html

,实际上Richard编写的是有效的HTML5,因为没有脚本和自动关闭标记都可以,但是是的,即使是XHTML5也不允许使用。这一限制意味着,如果您想以优雅有效的方式完成某些事情,您必须在页面加载时执行JavaScript(这也不理想)。相关问题:
<link href="css/stylenojs.css" rel="stylesheet" type="text/css" id="nojscss" />
var nojscss = document.getElementById('nojscss');
nojscss.parentNode.removeChild(nojscss);