原来不少元素咱们能够直接访问

这两天在帮其余项目组的同事作项目,他们使用layui,在使用模板时产生了一个疑问,先上代码html

var getTpl = tpl_crumbs_list.innerHTML

tpl_crumbs_list没有在js里面定义,只在页面上写了一个<script id="tpl_crumbs_list" type="text/html">...</script>标签,layui是如何获取到变量tpl_crumbs_list的呢????
先到console输入tpl_crumbs_list,咔还真没报错,也不是undefined,好神奇啊,是否是layui遍历了全部的script,将全部非普通type的script都设为全局变量了,先搜script,好像没有,再搜id也没有,靠靠靠,什么状况,给layui.js加断点,一个函数一个函数运行,跑到最后tpl_crumbs_list,也是仍是没值啊
猜测颇有可能与layui没有关系,只要元素有id,就能够经过window[id内容]获取到此元素,在百度页面实验了一下html5

clipboard.png

果真如此app

上百度,好不容易找到了Named access on the Window object函数

clipboard.png
上来就说这是很是规标准定义,使用此API会使代码脆弱不健壮,建议使用document.getElementById()或者document.querySelector()方法
自我感受英语还行,但读起规范来总感受力不从心ui

clipboard.png

主要有下面三种状况spa

  1. 子浏览内容(好比iframe)有name属性
  2. 在当前文档里下面元素有name属性, a, applet, area, embed, form, frameset, img, object,我本身实验了几个,发现a便签上有name属性获取不到此元素,formimg获取到了
  3. 在当前文档里任何元素有id属性,就能够

下面还有一段看起来费劲,这个方法也不是好方法就不看了,大体能够获得下面结论
iframe, applet, form, img, object等元素有name属性,能够经过window[name值]获取到该元素,任何当前文档元素有id,能够经过window[id值]获取该元素code

贤心大神威武,又知道一个小窍门orm

相关文章
相关标签/搜索