在 IE 上,表达式执行两次

on ie, the expression excute twice

本文关键字:两次 执行 IE 表达式      更新时间:2023-09-26
<div style="width:expression(alert('1'));"></div>

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

不要使用表达式。表达式解析引擎经常重新计算它们,以在上下文中进行最小的更改,包括鼠标移动、每个元素焦点的变化等,从而引入疯狂的开销。也没有针对发生这种情况的每个点的明确文档,因此您通常无法提前计划比基本计算稍微复杂的任何内容。最后,Microsoft将它们标记为已弃用,因此它们甚至无法在未来的IE版本中工作。