JavaScript document对象上的未知属性及调试技巧

2015年11月4日

今天系统更新了一下,发现JavaScript有个异常。调用document.banner,提示对象未定义;以前是好的。banner显然是其他JavaScript给document加上去的,于是找哪里给它加上去的。找遍了其他js代码,愣是没找到!

我用Chrome调试,有个技巧,就是用广告屏蔽软件把其他外部js全部屏蔽,这样看document.banner还有没有。结果发现还是有的,那么一定是该html页里面的js代码加的。

那我就把这个页面保存,修改一下把该页的js都删掉,结果还有!!!那么只能说document.banner不是js加的,因为根本没有js运行。最后发现这个键竟然来自<form>name属性。

name属性会被加到document对象里,我还是第一次知道。找遍w3schools、developer.mozilla.org等标准都没找到,发现这根本就是个不标准的用法。

不过我连document.forms也没在http://www.w3.org/里找到。