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