0

我希望标准行为是不在<noscript>元素中加载任何资产,并且在 FF 和 Chrome 中进行的快速粗略测试证明了这一点。但是,在<noscript>启用脚本时是否会加载元素中的资产(例如图像)?

4

2 回答 2

1

我想这取决于你的意思。采取这个标记:

<!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. 我想不出这个有什么用。

于 2012-04-15T15:20:02.807 回答
1

根据W3 规范

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

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

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

于 2012-04-15T12:43:05.350 回答