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

2012-04-23 11:02:37 +08:00
 darasion
chrome 下测试:

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

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

我才发现。囧。

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

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

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

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

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

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

© 2021 V2EX