在 IE6 和 IE7 上渲染版本 436 的 SIFR 时出现问题
我似乎对 SIFR3 有疑问。 我使用的是 436 版本,从我的所有测试来看,这似乎是与 IE6 和 IE7 相关的问题,因为我无法在 Firefox、Chrome、Windows 版 Safari 甚至 IE8 中复制该问题。
该问题出现在我公司的网站上,可以在这里看到:http://www.wyldeia。 co.uk/blog.php
当您第一次在 IE6 或 IE7 中访问该页面时,它看起来渲染得很好。 但是,如果您单击另一个页面,然后单击浏览器中的后退按钮,则所有文本都会被一条错误消息替换:“使用 sIFR3 修订版 436 渲染”。 如果刷新页面,问题就会消失,直到您浏览并再次返回。
我已经在两台运行 IE7.0.6000.16809 的独立计算机上尝试过此操作,还有一台运行 IE6 的独立计算机,然后我将其升级到 IE8。 我最初认为这可能与 Flash 播放器相关,但从 Flash 播放器版本 9 升级到 10 后,问题仍然存在。 进一步挖掘表明,该错误可能是由于 Flash 字体文件损坏或存在由 SIFR3 的先前版本生成的字体文件引起的。 然而,我已经使用提供的 fla 版本 436 导出了 flash 字体文件,但问题仍然存在。
通常我喜欢自己寻找答案,但事实上我对这个问题有点不知所措,所以如果有人知道这里可能发生什么,那么我将非常感激!
问候,
马克
I seem to have a problem with SIFR3. I'm using version 436 and from all my testing it appears to be a problem associated with IE6 and IE7 as I cannot replicate the issue in Firefox, Chrome, Safari for Windows, or even IE8.
The problem is occurring on my company's website and can be seen here: http://www.wyldeia.co.uk/blog.php
When you first go to the page in IE6 or IE7 it appears to render fine. However if you click away onto another page and then click the back button in the browser, all of the text is replaced by an error saying "Rendered with sIFR3 revision 436". If you refresh the page, then the problem goes away, that is until you browse away and come back again.
I've tried this on two separate machines both running IE7.0.6000.16809, and a further separate machine running IE6 which I then upgraded to IE8. I thought initially it might be Flash player related but on upgrading from version 9 to 10 of the flash player the problem remains. Further digging around indicated that the error can be caused by having a corrupted flash font file, or having one present that was generated with a previous revision of SIFR3. However I have exported the flash font file using the supplied fla with revision 436 but the problem remains.
Usually I like to track the answer down myself but as it is I'm at a bit of a loss on this one so if anyone has any ideas what might be happening here then I would be very grateful!
Regards,
Mark
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我找到了解决办法,
如果您尝试用鼠标光标悬停,文本将显示正确,所以..
我写了几行代码放入
sifr-config.js
仅当检测到 IE9 时强制重置 Flash onReplacemment 回调。
您必须使用Jquery进行浏览器检测或使用其他javascript方式
请参阅下面的链接:
http://www.voo-doo.net/robotphobia/2011 /05/修复-sifr-ie9
I've found a solution,
if you try to hover with mouse cursor the text will display correct so..
I write few line of code to put in
sifr-config.js
forcing flash reset onReplacemment callback only when IE9 is detected.
You must use Jquery for browser detection or use another javascript way
See the link below:
http://www.voo-doo.net/robotphobia/2011/05/fix-sifr-ie9
我知道可能发生这种情况的唯一情况是 sIFR 电影的祖先的
innerHTML
发生更改。 这会重置 Flash 影片 HTML,这在 IE 中会导致 Flash 变量丢失。 通常 sIFR 可以解决这个问题,但如果在返回浏览器历史记录后发生更改,则可能无法解决。建议:
页面上是否运行了设置
innerHTML
属性的代码? 尝试禁用此功能。尝试禁用任何非 sIFR 代码,看看是否有帮助。
在
sIFR.activate()
之前设置sIFR.useDomLoaded = false;
,这会延迟sIFR初始化直到页面加载,所以也许导致此问题的任何原因都将在此时运行如果确实是这个问题,我认为没有任何解决办法。 但如果能够确定的话,那将是一件好事。
The only case I know where this may happen is if the
innerHTML
of an ancestor of the sIFR movie gets changed. This resets the Flash movie HTML, which in IE causes the Flash variables to be lost. Normally sIFR works around this, but perhaps it can't if the change happens after going back through the browser history.Suggestions:
Is there code running on the page that sets
innerHTML
properties? Try disabling this.Try disabling any non-sIFR code and see if that helps.
Set
sIFR.useDomLoaded = false;
beforesIFR.activate()
, this delays sIFR initialization until page load, so perhaps whatever is causing this will have run at that time.If it is indeed this problem, I don't think there is any workaround left. But it'd be a good thing to know for sure.
我有同样的症状,并通过将包含元素的字体大小设置为使用 px 而不是 em 来补救。
I had the same symptom and remedied it by setting the containing element's font-size to use px instead of em.