Javascript Internet Explorer闪烁问题

Javascript Internet Explorer闪烁问题,javascript,jquery,css,internet-explorer,dom,Javascript,Jquery,Css,Internet Explorer,Dom,我正在构建一个web应用程序,其中包含一个正在运行的动画,该动画再现了一个不可移植的字幕元素的行为。我使用的是这个效果,但问题的根本原因似乎与库本身没有直接关系(它只是暴露问题的触发器) 具体问题如下: 我有一个html表单,其中有几个输入文本字段,用户必须填写这些字段。marquee动画每X毫秒运行一次(其中X小于1秒)。每当文本字段被聚焦时(用户点击它以填充它),文本光标不会闪烁(它应该闪烁),并永久保持在条形图中(作为|符号-请原谅我的语言…:-) 我已将有问题的代码精简到最低限度,您可以

我正在构建一个web应用程序,其中包含一个正在运行的动画,该动画再现了一个不可移植的
字幕
元素的行为。我使用的是这个效果,但问题的根本原因似乎与库本身没有直接关系(它只是暴露问题的触发器)

具体问题如下:

我有一个html
表单
,其中有几个
输入
文本字段,用户必须填写这些字段。
marquee
动画每X毫秒运行一次(其中X小于1秒)。每当文本字段被聚焦时(用户点击它以填充它),文本光标不会闪烁(它应该闪烁),并永久保持在条形图中(作为
|
符号-请原谅我的语言…:-)

我已将有问题的代码精简到最低限度,您可以在此处尝试:

要进行测试,只需按
开始
按钮,然后单击文本字段。每次动画运行时,应在输入文本下方的标签上添加一个点,并且光标不应闪烁(这就是问题所在)。请注意,如果动画以大于1秒的时间间隔运行,则不会发生这种情况(您可以在前面的小提琴中进行测试),并且光标会按预期闪烁。这让我相信,问题在于浏览器在更新过程中执行文本渲染和对字段不聚焦/重新聚焦的方式

由于其他主要浏览器(Firefox和Chrome)不存在此行为,因此此问题特定于Internet Explorer(至少在版本6中)。我尝试过直接通过DOM的对象
innerHTML
更新标签,但没有成功。更改的确切内容也不重要。如果动画仅从元素读取属性,则问题本身不会出现(仅当更新元素的属性-任何属性时)


由于我正在从事的项目具有很高的知名度和客户曝光率,客户不愿意让这种情况发生。有人能解释一下为什么会发生这种情况吗?是否有解决方法(在动画之前/之后从DOM附加/分离元素,在动画之后重新聚焦,等等)?请注意,失去
选框效果不是一个选项。

我过去在IE上遇到过一些闪烁的问题,不知道它是否与您的相同,但请尝试一下:

//@cc_on document.execCommand("BackgroundImageCache", false, true);// don't remove : prevent IE6 cursor blinking

然后,我记得的另一个修复方法是为身体设置一个固定的背景…

IE6快死了,不要担心这个小小的视觉故障。IE6的javascript支持非常糟糕,这就是问题的根源。正如我所说的,不能这样做,因为客户端依赖它(相信我,如果可以的话,我愿意让IE痛苦地死去;-)。即便如此,这个问题也不仅仅局限于IE6。IE7也会出现这种情况(刚刚在IETester中确认)。你能用IE中实际的
marquee
标记使用条件注释吗?@cdeszaq“IE6几乎死了”,false(至少对我来说)。12%的我的用户(浏览我的网站的人)仍然使用它。@Guandalino-微软刚刚宣布他们将强制所有IE6用户升级,所以我想这不再是一个问题。