0

见zhihu的页面,script用text/json修饰,同时设置了data-name,请问这个用的是什么知识或原理?

clipboard.png

zwillon 4.2k
2016-11-01 提问
2 个回答
1

已采纳

就相当于申明一个变量,没什么特别的。。

看base.js,原理就是遍历$('script.json-inline'),输出所有配置到一个对象里……
之所以是text/json,你用其他的text/aaa也是一样的,只要是浏览器不认识的script type,其中的代码就不会执行。

1

data-*是自定义属性,允许你自行命名,并赋予任意值,作为数据存储。
<script>标签在不写type属性或者属性为type="text/javascript"时,会作为javascript执行,其他情况下,会把标签内的代码当作纯文本,不作任何处理。
结论,该网站利用这种不会执行的script标签,用来存储一些数据,而data-*,可用来标识数据,以供查找。

撰写答案

推广链接