2010-02-01 82 views
0

並感謝您看看這個問題。Javascript顯示和隱藏Divs Reloads在IE6中完成頁面

我們開發了一個網站,其中有一個用Flash編寫的導航控件(Next和Previous按鈕)。這些按鈕使用ExternalInterface在我的網頁中調用Javascript函數,例如ExternalInterface.call(「showPage」,pageNum);

我的HTML頁面包含多個Div,每個代表一個'屏幕'。第一個分區(屏幕)的CSS顯示設置爲「內聯」,其餘全部設置爲「無」。

JavaScript的功能顯示頁面點擊Flash按鈕時,被稱爲是如下,它調用隱藏顯示功能:

function showPage(which) { 

    if (pagetype == "lo"){ 
     if(which < 0 && isRunningInFrame()){goPrev();} 
     else if (which > maxPageNum && isRunningInFrame()){goNext();} 
     else{dsPages.setCurrentRow(which);} 
    } 

    hideShow('page' + currentRow, 'page' + which); 
    prevRow = currentRow; 
    currentRow = which; 
} 

function hideShow(hideDiv, showDiv){ 
    if(document.getElementById(hideDiv)!=null){ 
     document.getElementById(hideDiv).className = "hideDiv clear"; 
    } 
    if(document.getElementById(showDiv)!=null){ 
     document.getElementById(showDiv).className = "showDiv clear"; 
    } 
} 

這一切運作良好的現代瀏覽器和非常敏感。然而,我們的客戶在他們所有的電腦上安裝了Internet Explorer 6(當然,他們不會這麼做!),當你​​點擊下一頁時,整個頁面就會重新加載。我只假設發生這種情況,因爲我可以在瀏覽器的左下角(灰色欄中)看到加載的所有JPEG圖像。一些HTML頁面包含大約50個「屏幕」,當它們全部重複加載時,這非常緩慢。

如果有人能夠看到爲什麼會發生這種情況,或者可以提出更有效的方法,我將不勝感激。

謝謝。

問候

克里斯

+0

應用程序是內部的還是暴露在互聯網上,如果您可以輕鬆地重現該錯誤,則故障排除將被簡化。 – 2010-02-01 14:43:33

+0

什麼是「下一個」?換句話說,點擊了什麼?如果它是標籤,那麼我懷疑問題在於瀏覽器遵循href屬性 - 這意味着您的事件處理程序不能正確地處理事件。 – Pointy 2010-02-01 14:45:12

回答

0

尖尖可以在這裏有一個點(沒有雙關語意)。一個簡單的猜測建議將嘗試放置'返回錯誤';在你的js通話之後。

+0

嗨Flugan,eShinn和Pointy,非常感謝您的想法。 該網站暴露於互聯網,但該網站是非常'鎖定',只允許來自我們客戶IP的流量。 關於下一步(我不是很清楚)的好處。我們的內容可以被看作是書中的章節。每個章節都是一個HTML頁面,每個頁面都有Divs,現在您知道,它們的CSS Display屬性可以被操縱以顯示相應的屏幕... – Chris 2010-02-04 09:09:34

+0

環繞這些div的是一個模板(Dreamweaver),它具有可編輯下的Div嵌入Flash電影的區域。這是.swf文件,它具有用戶點擊的按鈕。 Flash中的「下一個」按鈕調用externalInterface方法(ExternalInterface.call(「showPage」,pageNum);)。這將調用上面詳細介紹的javascript函數'showPage'。 eShinn,請您澄清我應該在哪裏嘗試'返回錯誤'。這應該在JavaScript函數(showPage)中還是在我的網站的實際JavaScript函數中? 再次感謝您的幫助。 – Chris 2010-02-04 09:11:19