long7181226 / compatibility-detector

Automatically exported from code.google.com/p/compatibility-detector
Apache License 2.0
0 stars 0 forks source link

An false-negative bug of detector getelementbyid_and_getelementsbyname #144

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
原有 detector 代码在缓存页面元素的 id 和 name 
属性值的时候可能没有抓取所有的 id 和 name。

造成这个问题的原因是:

原有的检测机制是在第一次调用 getElementById 或 getElmenetsByName 
时使用 querySelectorAll 方法得到页面所有拥有 id 和 name 
属性的元素,并缓存 id 和 name 属性值;在下次调用 
getElementById 或 getElmenetsByName 时直接同参数和缓存里的 id 或 
name 
比较。但如果这两个方法的调用出现在页面载入过程中,缓��
�中的 id 和 name 就只有已加载的元素的对应值。

解决方案:

仍然使用缓存,在页面没有载入完成前保存所有调用 
getElementById 或 getElmenetsByName 
的参数值,在页面载入完成后获取并缓存页面中所有的 id 和 
name 值,并根据条件报告问题。

Original issue reported on code.google.com by wangju...@beyondsoft.com on 26 Jan 2011 at 9:55