微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

html – 如果Javascript被禁用,是否只下载了一个noscript标记中的图像?

请考虑以下示例:
<noscript>
    <img class="photo" src="example.png">
</noscript>

客户端只有在禁用Javascript的情况下才能下载图像文件? (我知道客户端只能在此示例中禁用Javascript时看到该图像)

我问的原因是因为我已经在外部的CSS(避免http请求)中使用base64数据URI为几个背景图像属性.我也想通过使用外部Javascript更新其值来保留一些img标签的src值来使用base64数据URI(以保留缓存的优点).

本质上,这一切的重点是避免/限制http请求,所以我想知道如果我可以优雅地降级,只有在Javascript被禁用的情况下才能获取图像文件?还是下载的图像不管?

解决方法

HTML 4.01规范只是指出,在某些情况下,noscript的内容不会呈现.然而,这表明浏览器不应该在这种情况下基于其内容执行任何GET操作,因为这样的操作将是无意义的并且将降低效率.

HTML5草案更加明确,可能反映了实际的浏览器行为.它关于noscript element,在一个强调的笔记:“它的作用是基本上”关闭“解析器,当脚本启用,使元素的内容被视为纯文本,而不是真正的元素”. (该注释涉及为什么noscript在使用XHTML语法时不起作用,但它也会显示其工作原理,当它工作时).

所以我们可以预期,当启用脚本时,noscript的内容甚至不会被解析(除了识别结束标记). Blender的回答似乎证实了这一点,而我的Firefox实验也是如此:

<img src=foo style="foo: 1">
<noscript>
<img src=bar style="bla: 1">
</noscript>

当启用脚本时,Firefox会对foo造成失败的GET请求,但没有对bar的请求.另外,它显示一个关于错误的CSS代码foo的警告:1,在错误控制台中,但没有关于bla:1的警告:显然,img标签没有被解析.

但是,我不知道这个问题是如何与提出这个问题的理由相关的.我想你在noscript之外使用一个img元素,并使用数据:URL,所需的初始内容(作为后备,剩余脚本时的最终内容将保留).

原文地址:https://www.jb51.cc/html/229936.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐