有关知乎页面里,script的type为text/json的用法

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

clipboard.png

阅读 5.9k
2 个回答

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

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏