1

我在使用 sIFR 3、jQuery BlockUI 和 UpdatePanel 时遇到问题,其中页面刷新且 SIFR 字体消失。

在我用来处理 UI 的阻塞和解除阻塞的 Javascript 文件中,我检测到部分回发并解除阻塞 UI:

prm.add_endRequest(function() { $.unblockUI(); });

如果我在此代码块中重新运行 sIFR.replace(),则会呈现字体 sIFR 字体,但 # 字符正在替换我的页面标题(在浏览器窗口/选项卡的顶部)。这似乎只发生在 IE 中(如图。)每次我使用 LinkBut​​ton 刷新页面时,都会添加一个额外的 # 字符,因此我的页面标题最终看起来像“#########”。知道为什么会这样吗?

我应该运行一个特定的 sIFR.update() 函数吗?如果我执行 sIFR.redraw() 或 sIFR() 我得到 javascript 运行时错误。

4

1 回答 1

1

这是由 IE 中的错误引起的:

这是 IE 中一个非常特殊的错误,对于页面中的每个 Flash 电影,URI 的片段标识符部分 (#foo) 在文档标题中重复。Macromedia 报告说,可以通过更新浏览器使用的 VBScript 引擎来修复此错误。但是,对于那些仍然有错误引擎的用户,sIFR 包含一个解决方法。 http://wiki.novemberborn.net/sifr/Fragment+Identifier+Bug

window.location.hash != ""sIFR 3 有一个解决方法,但除非页面加载了片段标识符 ( ) ,否则它不会启动。在您的情况下,我假设页面加载时没有标识符,然后添加一个,然后重新运行替换,重新调用错误。

您可以通过打开(压缩版本)sifr.js并替换this.fix=c.ua.ieWin&&window.location.hash!=""为r436 来修补 r436 this.fix=c.ua.ieWin

于 2009-11-16T22:05:36.260 回答