【问题标题】:Loading assets in a noscript element在 noscript 元素中加载资产
【发布时间】:2012-04-16 05:06:13
【问题描述】:

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

【问题讨论】:

  • 如果配置正确,不要认为它会这样做:w3.org/TR/html4/interact/scripts.html#h-18.3.1 也只是在一个站点上使用<noscript> 中的图像进行了测试,并且没有浏览器加载该资产。
  • @m90 谢谢。这可能应该是一个答案而不是评论!您针对的是哪些浏览器?
  • 我在看 Chrome、FF、Opera 和 IE。将立即将其放入答案中。

标签: html xhtml cross-browser noscript


【解决方案1】:

根据W3 specifications

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

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

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

【讨论】:

    【解决方案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 中,这将在 &lt;noscript&gt; 元素中产生一个 &lt;img&gt; 元素,并且引用的图像是从服务器获取的。

    注意事项:
    1. 我不知道为什么会这样。
    2. 似乎只有 Firefox 能做到这一点。
    3. 我想不出这个有什么用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-10
      • 2020-09-14
      • 1970-01-01
      • 2019-08-06
      • 2013-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多