我通常在幻想在 SO 中提出问题之前解决我的编程疑问,但这是我似乎第一次找不到答案……所以……这是我下班后向网站提出的第一个问题试图解决这个问题:
¿ 如何拥有一次性的 css 表达式?
为什么一次性表达?: 如果我们做一些测试(小心,因为 IE6 和 IE7 会一次又一次地显示警报......):
<div style="height:expression(alert('this alert repeats itself'));">
content with infinite alert...
</div>
表达式被评估直到时间结束......这就是为什么我想了解一种让它发生一次的方法,就像 2° 文章试图解释的那样覆盖样式本身,但我真的无法理解它工作....
正如我们在这篇文章中所读到的:
http://developer.yahoo.com/blogs/ydn/posts/2007/07/high_performanc_6/
表达式重复自己,这可能是一个性能问题......
那么这篇文章:
http://vacskamati.blogspot.com/2008/10/one-time-execution-of-ie-css.html
这很好,因为它是我发现的唯一一个试图解决这个问题的人......但我似乎无法做到......
我正在尝试做的事情......是在 IE 中模拟“最大宽度”和“最大高度” ......我知道 FF 和其他任何东西都可以直接使用 CSS 来完成......我必须让它以某种方式工作在 IE6 和 IE7...
我知道我可以在外面使用 JS,但是正如您将在我的代码中看到的那样...我将尝试输入 php 值...所以我需要直接在表达式中进行一些控制,以便它自动执行一次然后我不必在其他地方编写 JS 函数......我认为这应该很简单......但我可以得到它......无论如何......我的代码是这样的......:
<div id="div_id"
style="
max-height:<?php echo $height_var; ?>;
-$height:
expression(
if(document.getElementById('div_id').offsetHeight><?php echo $height_var; ?>){
document.getElementById('div_id').style.height = '400px'
}
);
overflow:scroll;
" >
content--lbalbalbalbalblablablalb
</div>
Sooo...嗯,这就是基本思想...我已经尝试过上述文章尝试解释的不同方式,我已经尝试向该人发送邮件,嗯,但是在等待可能的答案时,我暴露了这个问题对于 SO 社区,因为无法为我认为可能很简单的事情找到答案是很奇怪的……
所以现在......据我所知,EXPRESSION 会重复自己......如果原始内容大于 400px,我会得到 SCROLL......但我知道它会重复自己,因为......如果我发送“警报” ()" 它一直出现....所以....再次我如何才能实现一次表达...所以 IE 不会评估它 mousemove 或任何动作...。
在此先感谢=)(对不起我奇怪的缩进代码...= P)