2012-04-19 34 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版本中工作。