2010-09-14 5 views
1

J'ai un contrôle sur ma page et je veux changer son URL cible (l'URL de la page affichée dans l'iframe) en cliquant sur un hyperlien. Le problème est que l'iframe ne se met pas à jour lors du clic. Je suis sûr que je me manque quelque chose, mais je ne sais pas quoi:La fonction Javascript ne semble pas se déclencher

<script type="text/javascript"> 
var source = document.getElementById("CurrentlySelected") 
function change(u) { 
    if (source.getAttribute("src") != u) { 
     source.setAttribute("src", u); 
     document.location.reload(true); 
    } 
} 
</script> 

<ul> 
    <li><a href="#" onclick="change('http://www.somewebsite.com');">Website 1</a></li> 
    <li><a href="#" onclick="change('http://www.thiswebsite.net');">Website 2</a></li> 
</ul> 

<iframe id="CurrentlySelected" width="800px" height="600px" src="http://www.somewebsite.com"></iframe> 

JS est pas mon point fort, mais je ne vois pas de problème ici ... des idées?

Un autre problème est que l'arrière-plan de l'iframe ne prend pas la même couleur du site lié dans son attribut src ...

EDIT
Le problème avec la couleur de fond du site en l'iframe semble être un problème avec Google Chrome, quelqu'un sait-il un correctif?

Répondre

3

Lorsque vous écrivez document.location.reload(true), vous actualisez la page parent, en réinitialisant le pour pointer vers l'URL d'origine.
Supprimer cette ligne; la définition de l'attribut src rechargera déjà la trame.

De plus, vous appelez document.getElementById avant que l'élément existe; vous devez déplacer le bloc <script> après le .

+0

Ah doux, droit sur l'argent avec l'url commutation :) aucune idée sur la couleur de fond de l'iframe? –

1

Try this ...

<ul> 
    <li><a href="#" onclick="change('http://www.somewebsite.com');">Website 1</a></li> 
    <li><a href="#" onclick="change('http://www.thiswebsite.net');">Website 2</a></li> 
</ul> 

<iframe id="CurrentlySelected" width="800px" height="600px" src="http://www.somewebsite.com"></iframe> 

<script type="text/javascript"> 
// now iframe is available... 
var source = document.getElementById("CurrentlySelected") 
function change(u) { 
    if (source.getAttribute("src") != u) { 
     source.setAttribute("src", u); 
     // NOT NEEDED: document.location.reload(true); 
    } 
} 

</script> 
0

Est-ce le problème de votre document.location.reload(true);? Si vous modifiez l'URL de l'iframe mais que vous rechargez la page qui contient l'iframe, l'URL de l'iframe sera remise à l'état de ce qui est dans le code HTML de la page hôte.

Questions connexes