我在使用.net 3.5的ascx頁面中有一個更新面板。在callpback窗格更新DOM後IE不更新display
用戶輸入數據,啓動回調,並且ajax更新DOM。
通常情況下所有的都是hunky dory。偶爾DOM得到更新,IE瀏覽器不打擾刷新顯示。整個更新區域顯示爲空白。
一旦用戶執行了一些可以觸發刷新的操作(如調整窗口大小),數據即刻顯示在屏幕上,但直到此時才顯示。
這是爲什麼?什麼可能導致它?它如何被修復?
我在使用.net 3.5的ascx頁面中有一個更新面板。在callpback窗格更新DOM後IE不更新display
用戶輸入數據,啓動回調,並且ajax更新DOM。
通常情況下所有的都是hunky dory。偶爾DOM得到更新,IE瀏覽器不打擾刷新顯示。整個更新區域顯示爲空白。
一旦用戶執行了一些可以觸發刷新的操作(如調整窗口大小),數據即刻顯示在屏幕上,但直到此時才顯示。
這是爲什麼?什麼可能導致它?它如何被修復?
您可以通過切換到真正的瀏覽器:)
真的「修復」,你可能能夠根據我發現in this page的伎倆來修復它。
基本上,你需要做的就是創建一個空的節點和本地刪除你與你的新內容更新DOM後什麼:
var t = document.createTextNode('temp text');
element.appendChild(t); // Not sure if this is any element
// or one inside your new DOM nodes.
setTimeout(function() { t.parentNode.removeChild(t); }, 0);
在該頁面的作者說:
即使使用我的「修復」,只有當用戶將其注模光標移出窗口的 並返回時,纔會起作用。
但是我認爲這樣做很好......我認爲IE瀏覽器可能不會觸發刷新,除非在瀏覽器窗口中有一些活動,以節省處理時間。
這已經是一個很長時間以來在IE瀏覽器中非常令人討厭的bug,儘管我找不到它在任何地方發佈。事實上,即使Opera不時有這個bug。
此外,即使您使用該技巧解決此問題,請檢查每一段HTML是否有效。您可以在http://validator.w3.org中查看。如果某段代碼無效,那麼你不能責怪瀏覽器不理解你的意思。
您看到了哪些版本的IE? – 2009-10-20 22:13:32