2010-02-01 81 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