Ouvrir des pages htm dans un iFrame

Signaler
Messages postés
29
Date d'inscription
mardi 27 avril 2004
Statut
Membre
Dernière intervention
16 mai 2009
-
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
-
Bonjour à tous,
J'ai récupéré un menu sur le web que j'ai modifié pour mon usage...
Un menu est situé dans la page index.htm et dans cette page index.htm il y a un iFrame.
Le menu contient des liens qui commande l'affichage de pages dans cet iFrame.



Avec le script ci-dessous, il n'y a aucune erreur tant que je travaille en local ou bien avec l'adresse physique du site : pagesperso.orange.fr/mondomaine/index.htm
Si j'appelle index.htm par son adresse virtuelle
, je reçois l'erreur :
'window.top.frames[...].location a la valeur null ou n'est pas un objet'
Le code incriminé, dans la partie javascript, est coloré en rouge plus bas...



J'ai contacté mon fournisseur de domaine, apparemment, il s'en tape :-( car je n'ai aucune réponse.
Pourriez-vous m'aider ?





Le code HTML :

...
   <script language= "javascript" type="text/javascript" >
   generation();
   </script>
...
 
 




Le code javascript :




<script language ="javascript" type="text/javascript" >   
var largeurMenu = 195    
var policeMenu = "Tahoma"   
var taillePoliceMenu = "11"   
var couleurPoliceMenu = "#0000C4" 
var couleurBordure = "#EBEBEB"  
var couleurFond = "#B0D8FF"   
var couleurFond2 = "#F0F8FF"  
var couleurLienRollOver = "#FFFFFF" 
var couleurFondRollOver = "#959EAD" 



var menu = new Array();
menu[0]="Accueil";
menu[1]="blabla";



var ssmenuNom = new Array();
var ssmenuLien = new Array();
var ssmenuTarget = new Array();



ssmenuNom[0] = new Array();
ssmenuLien[0] = new Array();
ssmenuTarget[0] = new Array();



ssmenuNom[0][0] = "Accueil du site";     
ssmenuLien[0][0] = "
http://www.mondomaine.fr/index.htm
";   
ssmenuTarget[0][0] = "_parent";       



ssmenuNom[1] = new Array();
ssmenuLien[1] = new Array();
ssmenuTarget[1] = new Array();



ssmenuNom[1][0] = "Blablabla";
ssmenuLien[1][0] = "
http://www.mondomaine.fr/products/la.htm
";
ssmenuTarget[1][0] = "mFrame";



ssmenuNom[1][1] = "YetBlablabla";
ssmenuLien[1][1] = "
http://www.mondomaine.fr/products/la.htm
";
ssmenuTarget[1][1] = "mFrame";



var nbMenu = menu.length;
var ie=document.all
var ns6=document.getElementById&&!document.all



function montreMenu(num){
 for (var i=0; i<nbMenu; i++) {
  if (ie) {
   objet = document.all["ssmenu"+i]
  } else if (ns6) {
   objet = document.getElementById("ssmenu"+i);
  }
  if (objet.style.display == ""){
   objet.style.display = "none"
  }
 }
 if (ie) {
  objet = document.all["ssmenu"+num]
 } else if (ns6) {
  objet = document.getElementById("ssmenu"+num);
 }
 if (objet.style.display == "none"){
  objet.style.display = "" 
 }
}



function rollOver(lien) {
 lien.style.background = couleurFondRollOver;
 lien.style.color = couleurLienRollOver;
}



function rollOut(lien) {
 lien.style.background = couleurFond2;
 lien.style.color = couleurPoliceMenu;
}



function ouvreLien(url,mode) {
 if (mode == "_blank") {
  window.open(url)
 } else if (mode == "_self")  {
  window.top.location.href = url
 } else {
////////////////// LE PROBLEME EST CI-APRES ///////////////////////////
  window.top.frames[mode].location.href  = url
///////////////////////////////////////////////////////////////////////
 }
}



function generation () {
 document.write("<style type='text/css'>");
 document.write("td.menu {");
 document.write(" font-family: "+policeMenu+";");
 document.write(" font-size: "+taillePoliceMenu+"px;");
 document.write(" font-weight: bold;");
 document.write(" color: "+couleurPoliceMenu+";");
 document.write(" border: 2px solid "+couleurBordure+";");
 document.write(" height: 18px;");
 document.write(" background-color: "+couleurFond+";");
 document.write("}");



 document.write("table.ssmenu {");
 document.write(" font-family: "+policeMenu+";");
 document.write(" font-size: "+taillePoliceMenu+"px;");
 document.write(" color: "+couleurPoliceMenu+";");
 document.write(" border: 1px solid "+couleurBordure+";");
 document.write(" height: 18px;");
 document.write(" background-color: "+couleurFond2+";");
 document.write("}");
 document.write("</style>");
  
 document.write("\");
 for (i=0; i<nbMenu; i++) {
  document.write(\"----
\");
  document.write(\""+menu[i]+", \");
  document.write(\"\");
  document.write(\"----
\");
  document.write(\"");
   document.write("<table width='"+largeurMenu+"' border='0' cellspacing='0' cellpadding='0'>");
  document.write("----
");
  document.write(", </td>\");
  document.write(\"\");
  document.write("
");
  document.write("\");
  for (z=0; z<ssmenuNom[i].length; z++) {
   document.write(\"----
\");
   document.write(\""+ssmenuNom[i][z]+", \");
   document.write(\"\");
  }
  document.write("
");
  document.write("</td>");
  document.write("</tr>");
  document.write("<tr>");
  document.write("<td width='2'></td>");
  document.write("</tr>");
  }
 document.write("</table>");
 }
 </script>

Merci de votre aide.
Patrice.

7 réponses

Messages postés
29
Date d'inscription
mardi 27 avril 2004
Statut
Membre
Dernière intervention
16 mai 2009

Re,
Désolé pour le lien mon domaine.fr, je ne savais pas qu'il existait (ce n'est pas de la pub ;-)) !!
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
33
function ouvreLien(url,mode) {
 if (mode == "_blank") {
  window.open(url);
 } else if (mode == "_self")  {
  window.top.location.href = url;
 } else {


////////////////// LE PROBLEME EST CI-APRES ///////////////////////////
  window.top.frames[mode].location.href  = url
///////////////////////////////////////////////////////////////////////
 }
}





Si t'a besoin d'aide, MP !!!
Messages postés
29
Date d'inscription
mardi 27 avril 2004
Statut
Membre
Dernière intervention
16 mai 2009

Merci...
Apparemment, ce n'est pas cela qui pose problème.

il n'y a aucune erreur tant que je travaille en local ou bien avec l'adresse physique du site : pagesperso.orange.fr/mondomaine/index.htm
Si j'appelle index.htm par son adresse virtuelle www.mondomaine.fr, je reçois l'erreur :
'window.top.frames[...].location a la valeur null ou n'est pas un objet'

Bonsoir.
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
34
Bonjour,
    ça vient donc (?) de la redirection faite ?
       on ne pointe pas sur la même chose ou test de je ne sais quoi je ne sais où...
    on ne peut pas avoir les adresses réelles, pour regarder ?
<hr />                Cordialement            Bul        
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
33
function ouvreLien(url,mode) {
 if (mode == "_blank") {
  window.open(url);
 } else if (mode == "_self")  {
  window.top.location.href = url;
 } else {


////////////////// LE PROBLEME EST CI-APRES ///////////////////////////
  window.top.frames[mode].location.href  = url; //et si je rajoute un point virgule ici es ce que ça marche
///////////////////////////////////////////////////////////////////////
 }
}





Si t'a besoin d'aide, MP !!!
Messages postés
29
Date d'inscription
mardi 27 avril 2004
Statut
Membre
Dernière intervention
16 mai 2009

Bonsoir et merci à tous,
Bon, il va falloir que je me mette au boulot car même avec vos remarques, cela ne fonctionne pas mieux. L'erreur est identique.
Je vais essayer de faire une recherche avec quelques lignes de code pour retrouver l'auteur de ce script ;-)

Mais je n'en démords pas; je suis persuadé que ce pb vient du fournisseur de domaine. Il me semble bien que certains fournisseurs encapsulent la page principale dans une frame. C'est cela qui doit "merdoyer"...

Merci quand même.
Bye.
Patrice. 
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
34
>>certains fournisseurs encapsulent la page principale dans une frame
    par exemple...   [  ça vient donc (?) de la redirection faite ? ]
<hr />                Cordialement            Bul