2010-07-25 3 views
1

Je viens de remarquer que mon contrôle de l'historique JavaScript ciblant un iFrame affecte le parent. Le code est:Contrôle de l'historique JavaScript ciblé sur le parent affectant iFrame

document.getElementById('iframeid').contentWindow.history.back(-1); 
document.getElementById('iframeid').contentWindow.history.forward(-1); 

Il fonctionne très bien, jusqu'à ce qu'il n'y a rien à revenir en arrière ou en avant dans l'iframe, où il aura une incidence sur le cadre parent mobile qui vers l'arrière et vers l'avant, ce phénomène se produit sur tous les principaux navigateurs, safari, opéra, chrome, firefox, ie 6 7 8.

Quelqu'un sait comment l'arrêter?

Répondre

1

Vérifiez le premier objet de historylength:

if (document.getElementById('iframeid').contentWindow.history.length) 
{ 
    // your code.... 
} 

L'état fonctionnera seulement quand il y a quelque chose pour l'objet history pour naviguer autour.

+0

cela semble retourner constamment la valeur 38? – cappuccino

+0

La vérification de la longueur de l'historique ne fonctionne pas, car elle inclut la longueur de l'historique du cadre parent. – cappuccino

+0

@cappuccino: Quelle valeur est retournée lorsque vous faites 'alert (window.history.length)'? – Sarfraz

Questions connexes