Javascript Show and Hide Divs在IE6中重新加载完整页面

时间:2010-02-01 14:33:04

标签: javascript internet-explorer-6

感谢您查看此问题。

我们开发了一个网站,其中包含用Flash编写的导航控件(Next和Previous按钮)。这些按钮使用ExternalInterface在我的网页中调用Javascript函数,例如ExternalInterface.call(“showPage”,pageNum);

我的HTML页面包含多个Div,每个Div代表一个“屏幕”。第一个Div(屏幕)将CSS Display设置为'inline',其余所有设置为'none'。

单击Flash按钮时调用的Javascript showPage函数如下所示,它调用hideShow函数:

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";
    }
}

这一切在当代浏览器中运行良好,反应灵敏。但是我们的客户在他们所有的PC上都安装了Internet Explorer 6(他们不会这样!)当你点击Next时,整个页面会重新加载。我只是假设发生了这种情况,因为我可以在浏览器的左下角(灰色条中)看到所有JPEG图像加载。一些HTML页面包含大约50个“屏幕”,当它们一次又一次地加载时,这非常慢。

如果有人能够理解为什么会这样,或者可以提出更有效的方法,我将非常感激。

谢谢。

此致

克里斯

1 个答案:

答案 0 :(得分:0)

Pointy可能在这里有一点(没有双关语意)。一个简单的猜测建议是尝试放置'return false;'在你的js-call之后。