2009-11-16 43 views
1

我遇到了使用sIFR 3,jQuery BlockUI和UpdatePanel的頁面刷新和SIFR字體消失的問題。使用BlockUI和UpdatePanel的sIFR 3問題(IE)

在我用來處理用戶界面的阻擋和非阻擋JavaScript文件,我檢測部分回發和開啓UI:

prm.add_endRequest(函數(){$ .unblockUI();} );

如果我在此代碼塊中重新運行sIFR.replace(),將呈現字體sIFR字體,但是#字符正在替換我的頁面標題(位於瀏覽器窗口/選項卡的頂部)。這似乎只發生在IE瀏覽器(去圖)。每次我刷新頁面使用LinkBut​​ton一個額外的#字符被添加,所以我的頁面標題最終看起來像「#########」。任何想法爲什麼發生這種情況?

是否有一個特定的sIFR.update()函數,我應該運行?如果我執行sIFR.redraw()或sIFR()我得到JavaScript運行時錯誤。

回答

1

這是通過一個錯誤在IE造成的:

這是在IE中的非常特殊的錯誤,其中對於每個Flash電影在頁面中的URI(#foo)的片段標識符部分在重複文件名。據Macromedia報道,這個bug可以通過更新瀏覽器使用的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。

+0

謝謝馬克。鍛鍊了魅力! – Markis 2009-11-18 13:05:36