带有BlockUI和UpdatePanel的sIFR 3问题(IE)

时间:2009-11-16 08:44:50

标签: updatepanel sifr blockui

我遇到使用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运行时错误。

1 个答案:

答案 0 :(得分:1)

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

  

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

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

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