XHTML中的noscript替代方案?
在HTML中,我可以做到: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客户
<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);