在 noscript 元素中加载资源

Loading assets in a noscript element

提问人:Matty 提问时间:4/15/2012 更新时间:4/16/2012 访问量:520

问:

我希望标准行为是不要在元素中加载任何资产,FF 和 Chrome 中的快速粗略测试证明确实如此。但是,在启用脚本时,是否有任何情况会加载元素中的资产(例如图像)?<noscript><noscript>

HTML xhtml 跨浏览器 noscript

评论

0赞 m90 4/15/2012
如果配置正确,不要以为它会这样做: w3.org/TR/html4/interact/scripts.html#h-18.3.1 此外,刚刚在网站上使用内部图像对此进行了测试,并且没有浏览器加载该资产。<noscript>
0赞 Matty 4/15/2012
@m90谢谢。不过,这可能应该是一个答案,而不是评论!您针对的是哪些浏览器?
1赞 m90 4/15/2012
我正在研究Chrome,FF,Opera和IE。会立即给出答案。

答:

1赞 m90 4/15/2012 #1

根据 W3 规范

NOSCRIPT 元素允许作者在以下情况下提供替代内容 脚本未执行。NOSCRIPT 元素的内容应 仅在以下情况下由脚本感知用户代理呈现: 用户代理配置为不评估脚本。用户代理 不支持 SCRIPT 元素调用的脚本语言 在文档的前面部分。不支持客户端的用户代理 脚本必须呈现此元素的内容。

所以我想就像您的测试所证明的那样:当客户端支持元素时,部分中的元素根本不会被渲染(即也下载)。<noscript><script>

我也刚刚在我的一个页面上测试了这一点,该页面在其内部使用了图像,Chrome、FF、Opera 或 IE 都没有对下载图像表现出任何兴趣。<noscript>

1赞 Alohci 4/15/2012 #2

我想这完全取决于你的意思。采用以下标记:

<!DOCTYPE html>
<html>
  <head>
    <title>Test Case</title>
  </head>
  <body>
    <noscript id="ns">
    </noscript>
    <script>
      var ns = document.getElementById("ns");
      ns.innerHTML = "</noscript><img src='http://www.alohci.net/dummy'>";
    </script>
  </body>
</html>

在Firefox中,这将导致元素内部有一个元素,并且引用的图像是从服务器获取的。<img><noscript>

注意:
1.我不知道为什么会这样。
2. 似乎只有 Firefox 可以做到这一点。
3. 我无法想象这有什么用。