noscript标签在不同浏览器中的处理方式
how noscript tag treated in different browsers
我在任何地方都找不到关于这个的解释。
我只是想知道什么浏览器生成的noscript
标签内的数据,如果 JS是启用的。
:
根据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的浏览器测试工具,如https://www.browserstack.com,这将加快你的测试过程
要理解这一点,请记住HTML5规范描述了两种语法,当页面作为text/html
提供时的(常规)HTML语法和当页面作为application/xhtml+xml
提供时的XHTML语法。浏览器根据使用的语法做不同的事情。
我希望您感兴趣的是text/html
语法,因此,规范在第8节- HTML语法中描述了发生的事情。
然后我们需要遵循解析器算法的树构建阶段,对于您的示例,<noscript>
元素位于head部分,请查看"in head"插入模式。从那里向下搜索,你会发现A start tag whose tag name is "noscript, if the scripting flag is enabled
链接到通用的原始文本元素解析算法..
这将标记器置于RAWTEXT状态,这意味着所有字符只是通过传递,直到找到</noscript>
标记(即实体引用未解析),插入模式切换为"文本"插入模式。
这只是将每个字符添加到文本节点,直到插入模式切换回以前的模式时找到</noscript>
标记,例如"in head"插入模式,然后完成<noscript>
元素的解析。
对于您的示例,结果是<link rel="stylesheet" href="basic.css" type="text/css" media="all" />
将是文本节点的未解释内容,作为<noscript>
元素的唯一子元素。
- 在承诺链中处理早期回报的最佳方式
- 如何处理javascript中的循环引用,类似于Excel提供迭代限制的方式
- 如何启用Emmet'的选项卡键处理程序(HTML快捷方式)
- 在Javascript HTML5+Canvas中处理精灵鼠标点击的最佳方式
- 如何以 Angular2 方式处理 ajaxStart 和 ajaxStop 事件
- 我怎样才能以非阻塞的方式处理数字
- 如何制作一个JavaScript函数,处理多组输入,以同样的方式进行数学处理
- React是装载前处理空对象的最佳方式
- 为什么'这'与函数对象一起使用时会有不同的处理方式
- 在IE / FF中使用getElementsByTagName时,自定义标签的处理方式不同
- 访问Google Analytics Realtime Reporting API(通过javascript)的处理方式
- 为什么函数声明在不同的浏览器中处理方式不同
- 更好的处理方式'这'在Javascript的闭包中
- RegEx在VBA和JavaScript中的处理方式有何不同?
- 窗口.Onerror函数在不同浏览器上的处理方式不同
- 在JavaScript中存储鼠标移动数据的最有效的处理方式是什么?
- noscript标签在不同浏览器中的处理方式
- 是“;静音”;以及“;体积=0.0”;还是一样?事件侦听器对它们的处理方式不同
- Photoshop/ESTK - 预定义的数值,处理方式与用户输入不同
- 为什么有很多有效数字的数字在c#和JavaScript中处理方式不同?