2012-04-19 29 views
-3
<div style="width:expression(alert('1'));"></div> 

如果您在IE7中运行此代码,它将执行两次。为什么?即即表达式执行两次

+2

你应该避免使用表达式。做任何你计划在JS中做的事情。 – Joseph 2012-04-19 11:36:51

+1

嗯......你想要做什么? – sp00m 2012-04-19 11:36:52

+0

除非您提供更多的上下文,否则我们无法提供帮助 – 2012-04-19 11:40:58

回答

1

请勿使用表达式。表达式解析引擎经常会重新计算它们,以便在上下文中进行最小限度的更改,包括鼠标移动,每个元素焦点等的变化,从而引入疯狂的开销。对于发生这种情况的每一点,也没有明确的文档,所以你通常不能提前计划比基本计算稍微复杂的任何事情。最后,微软将它们标记为已弃用,所以它们甚至不会在未来的IE版本中工作。