使用类型=“0”;text/plain”;用于JavaScript
Using type="text/plain" for JavaScript?
我只是出于好奇才考虑设置它,但当他们说要让它发挥作用时,我有点困惑:
查找设置Analytics cookie的任何Javascript元素。示例可能包括Google Analytics和StatCounter。修改脚本标记,使类型属性为"text/plain"而不是"text/javascript"
这会导致某些网络浏览器出现问题吗?它会导致HTML不再有效吗?
此外,"类型"属性真的有作用了吗?我以前只见过它被分配为"text/JavaScript"?
如果浏览器不将元素的内容解释为脚本代码,而只是将其解释为未呈现的文本数据,则不会造成问题。它是供脚本使用的,但在其他方面它会被忽略。在某些浏览器中,可以使用CSS使内容可见,但默认情况下不会显示。
根据HTML规范,使用<script type="text/plain">
是有效的。即使<script type="Hello world ☺">
也是有效的,尽管它违反了属性值是MIME类型的散文要求。规范没有具体说明它的含义,但唯一可行的解释,以及浏览器在实践中所做的,是它没有使用任何脚本语言,也没有在尝试脚本时执行。
因此,type="text/plain"
可以用于有意阻止脚本的执行,同时仍将其保留在源代码中。它还可以用于携带用于某些处理的大量字符数据。
type
属性可以用于类似的目的,也可以用于指定JavaScript以外的脚本语言(很少使用,但在某些环境中仍然可以使用)。不需要仅使用type
属性来指定JavaScript,也不推荐使用:唯一可能出现的错误是:如果键入错误,例如type="text/javascirpt"
,则内容将被视为使用未知语言,因此被忽略。
这会导致某些网络浏览器出现问题吗?
无
它会导致HTML不再有效吗?
无
此外,"类型"属性真的不再是一个目的吗?
浏览器使用它来决定通过哪个解释器运行代码(或者是否应该从外部下载src
ed代码)。
将其设置为text/plain
会将其设置成浏览器没有解释器的类型(因为它不是一种编程语言),这就是重点。
给JS代码提供text/plain类型是完全可以的,并且会有效地禁用它。要在页面加载后启用脚本,您需要有JS代码来动态地将类型重写为text/javascript。Cookie阻塞就是一个常见的例子。插入一个带有text/plain的cookie设置脚本,并在用户同意cookie时更改为text/javascript。这将立即在当前页面上执行脚本,无需重新加载。
- 将函数的上下文应用于javascript变量
- keyup事件处理程序更改焦点不适用于快速键入
- JQueryhide()不适用于Mozzilla,但适用于Chrome
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- PHP中的setcookie仅适用于localhost
- 包括用于facebook评论框的JavaScript SDK
- 如何检测用于WebGL的专用或集成显卡
- ng更改事件不适用于Dropdown
- 用于搜索的聚合物嵌套绑定
- jQuery表单添加不适用于下拉列表
- Rails/JSON:如何将JSON用于jquery UI自动完成表单
- JS编译器/包管理器,用于版本控制
- 将CSS应用于printWindow.print();在Javascript中
- 用于'魔术串'属性
- 用于检查数组中是否存在元素的javascript自定义方法
- 谷歌地图API v3不适用于移动浏览器或PhoneGap
- 在ajax成功后,cluetip不适用于首次点击活动元素
- D3.js模式不适用于弧形或圆环图
- AngularJS单选筛选不适用于Name、Description和Field4复选框值
- 使用类型=“0”;text/plain”;用于JavaScript