Javascript noscript标记在不同浏览器中的处理方式

Javascript noscript标记在不同浏览器中的处理方式,javascript,html,css,cross-browser,noscript,Javascript,Html,Css,Cross Browser,Noscript,我在任何地方都找不到任何解释 我只是想知道,如果启用了JS,浏览器会用noscript标记中的数据生成什么 例如: 根据HTML5规范,允许在head标记中使用noscript标记 <head> <noscript> <link rel="stylesheet" href="basic.css" type="text/css" media="all" /> </noscript> </head> 我问这个问题的原因是,我担心一些浏

我在任何地方都找不到任何解释

我只是想知道,如果启用了JS,浏览器会用
noscript
标记中的数据生成什么

例如:

根据HTML5规范,允许在
head
标记中使用
noscript
标记

<head>
<noscript>
<link rel="stylesheet" href="basic.css" type="text/css" media="all" />
</noscript>
</head>

我问这个问题的原因是,我担心一些浏览器可能会将
noscript
标记视为文本(如果启用了JS),因此它会加载/添加不必要的数据

那么,浏览器实际上是如何处理
noscript
标记的呢

谢谢

HTML元素定义要插入的HTML的一部分 如果页面上的脚本类型不受支持或脚本类型不受支持 当前已在浏览器中关闭

如果启用脚本,noscript元素不表示任何内容,并且 如果禁用脚本,则表示其子级。习惯于 向支持脚本编写和 那些不支持脚本的,会影响文档的编写方式 解析

noscript
标签在浏览器中得到了很好的支持,据我所知,它与标准规范没有任何偏差


顺便说一句,如果您确实需要确保它在不同浏览器中的行为,您可以使用基于Web的浏览器测试工具,这将加快您的测试过程。

要理解这一点,请记住HTML5规范描述了两种语法,即(常规)当页面用作
text/HTML
时为HTML,当页面用作
application/XHTML+xml
时为XHTML。浏览器根据使用的语法执行不同的操作

我希望您感兴趣的是
text/html
语法,因此,规范描述了在中发生的事情

然后,我们需要遵循解析器算法的树构造阶段,对于您的示例,
元素位于head部分,请在下面查看。从那里向下搜索,您将发现
一个开始标记,其标记名为“noscript”,如果启用了脚本标记,则该标记链接到

这会将标记器置于中,这意味着所有字符都将被传递,直到找到
标记(即实体引用未解析)并切换插入模式

这只是将每个字符添加到文本节点,直到插入模式切换回前一模式(例如“头中”插入模式)时找到
标记,然后完成
元素的解析


您的示例的结果是,
将是文本节点的未解释内容,作为
元素的唯一子元素。

@JaromandaX您能提供一个引用来回答我的问题吗?@JaromandaX但它不回答浏览器使用
noscript
tago中的数据生成的内容吗?噢,您想知道吗当启用JS时,
的内容会发生什么情况?对不起,我完全误解了你的问题-让我删除我的错误
如果启用脚本,noscript元素不表示任何内容,如果禁用脚本,则表示其子元素。
-虽然这并没有说明各个浏览器的实际功能,但我以前的链接的MDN页面没有提到任何与此标准的偏差。如果互联网搜索没有给出最终的答案,我唯一能建议的是测试您访问过的尽可能多的浏览器(也可以使用在线虚拟浏览器进行测试)问题是如果启用JS,
noscript
标记的内容(它生成的内容)会变成什么样子。@virosimus感谢您的评论。我已经用w3源代码的链接更新了我的答案。嗯……出于某种原因,我不能将
@Gibbok
与您的昵称一起使用:)无论如何,我感谢您的帮助,但这对Jaromanda X的答案没有任何帮助。