<div id="aaa"> </div> 会在全局名字空间创建 aaa 变量,这个特性太扯淡了。

2012 年 4 月 23 日
 darasion
chrome 下测试:

======================================
html 文件:
<div id="aaa">testtest</div>

======================================
console 输出:
------------------------------------------------------------
>aaa
<div id=​"aaa">​
testtest
​</div>​
------------------------------------------------------------
>typeof aaa
"object"
------------------------------------------------------------
>aaa.toString()
"[object HTMLDivElement]"
------------------------------------------------------------

我才发现。囧。

本来我感觉 js 变量的命名就非常头疼,这下又加了一条头疼的规则。
4168 次点击
所在节点    分享发现
9 条回复
darasion
2012 年 4 月 23 日
@livid 有bug 啊,主题中的html都没过滤,赶快修啊赶快。。。
dongsheng
2012 年 4 月 23 日
V2EX被XSS了
Insomnia
2012 年 4 月 23 日
被弹窗了。。。
ry_wang
2012 年 4 月 23 日
这是大漏洞...... @livid
dongsheng
2012 年 4 月 23 日
@livid 赤裸裸的script标签被输出了
vibbow
2012 年 4 月 23 日
<script> alert('WTF,居然script会被解析?'); </script>
Livid
2012 年 4 月 23 日
正在解决。
Livid
2012 年 4 月 23 日
Fixed.

Thank you.
yyfearth
2012 年 4 月 23 日
其实也没啥啊,只是在变量使用的时候要小心一些罢了。
而且本来在使用变量的时候都是用闭包的局部变量,很少去用全局的变量。
这样用id,应该是为了一定程度上兼容ie吧(猜的)
另外,debug的时候挺方便的。
所有变量都在(function(){var xxx;...})里面声明,也不用管id啊。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/32993

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX