2010-02-01 3 views
0

et merci de jeter un oeil à cette question.Javascript Afficher et masquer Divs Recharge la page complète dans IE6

Nous avons développé un site Web qui a un contrôle de navigation (boutons Suivant et Précédent) écrit en Flash. Ces boutons utilisent ExternalInterface pour appeler une fonction Javascript dans ma page Web, par ex. ExternalInterface.call ("showPage", pageNum);

Ma page HTML contient un certain nombre de Divs qui représentent chacun un seul 'écran'. La première Div (écran) a l'affichage CSS défini sur «inline» et tous les autres sont définis sur «none».

La fonction Javascript showPage qui est appelée lorsque le bouton Flash est cliqué est comme suit et il appelle la fonction MasquerVoir:

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

Tout cela fonctionne bien dans les navigateurs contemporains et est très réactif. Cependant, notre client a Internet Explorer 6 sur tous ses PC (et bien ils ne le feraient pas!) Et lorsque vous cliquez sur Suivant, la page complète se recharge. Je suppose seulement que cela se produit parce que je peux voir dans le coin inférieur gauche du navigateur (dans la barre grise) toutes les images JPEG qui se chargent. Certaines pages HTML contiennent environ 50 'écrans', ce qui est très lent lorsqu'elles se rechargent encore et encore.

Je serais très reconnaissant si quelqu'un peut voir pourquoi cela se produit ou pourrait suggérer une approche plus efficace à ce sujet.

Merci.

Cordialement

Chris

+0

Si l'application est interne ou exposée à Internet, le dépannage est simplifié si vous pouvez facilement reproduire le bogue. –

Répondre

0

Pointy peut avoir un point ici (sans jeu de mots). Une simple supposition-suggestion serait d'essayer de placer un «retour faux»; après votre js-call.

+0

Salut Flugan, eShinn et Pointy, merci beaucoup pour vos pensées. Le site est exposé à Internet, mais le site est très "verrouillé" pour permettre uniquement le trafic de l'IP de nos clients. Bon point sur ce qui est à venir (je n'étais pas très clair). Notre contenu pourrait être considéré comme des chapitres dans un livre. Chaque chapitre est une page HTML avec des divs pour chaque page qui, comme vous le savez maintenant, ont leur propriété d'affichage CSS manipulée pour montrer l'écran approprié ... – Chris

+0

Envelopper autour de ces divs est un modèle (Dreamweaver) qui a une div sous l'éditable zone qui incorpore un film Flash. C'est ce fichier .swf qui possède les boutons sur lesquels l'utilisateur clique. Le bouton 'next' dans Flash appelle une méthode externalInterface (ExternalInterface.call ("showPage", pageNum);). Cela appelle la fonction javascript 'showPage', détaillée ci-dessus. eShinn, pourriez-vous préciser où je devrais essayer le 'return false'. Cela devrait-il être dans la fonction javascript (showPage) ou dans la fonction javascript actuelle de mon site? Merci encore pour votre aide. – Chris

Questions connexes