Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Frame et Javascript


Messages recommandés

Posté(e)
oups, je viens de me rappeller ce topic... toutes mes confuses

 

Grrr ... attends que je te mords...

 

777

Posté(e)
Essaye de mettre ca dans ta page visu :


<script language="javascript">

mapage = document.location.href;



if (top.frames.length == 0)

{

document.clear();

document.write('<html><frameset rows="150,*"><frame src="menu.html"><frame src="' + mapage + '"></frameset></html>');

}

</script>

 

Dans la ligne "document.write" tu mets le code html contenu dans ta page de frameset. Si kkun essaye de charger ta page visu directement, ca remettra les frames où il faut.

 

Automne

 

Yess yess, je commence à comprendre ... :P

 

Je vais en refaire un beau :-(

 

777

Posté(e)

Voilà, ma réponse d'après vos indications et ce que j'ai trouvé sur le net. Dites moi si c'est bon

 


Dans /index.php, page de démarrage du site



<script language="javascript">

if (!pageEnCour)

{

pageEnCours="/accueil.php";

}

document.write('<html>

   <frameset rows="150,*">

   	<frame name="Menu" src="menu.html">

   	<frame name="Visu" src="' + mapage + '">

   </frameset>

   </html>');

</script>

 


Dans all.php (sauf index.php)



<script language="javascript">

if (!(parent.frames["Menu"] || parent.frames["Visu"]))

{

pageEnCours = document.location.href;

location.replace("/index.php");

}

</script>



 

Vous en pensez quoi ?

 

777

 

PS : j'apprends le javascript en meme temps :P

Posté(e)

Y a des problemes dans ce que tu as ecrit :

- Déjà pour determiner si une variable a été initialisée, il faut utiliser typeof(nomVariable) != "undefined" et non !nomVariable

 

- Ensuite, tu ne peux pas passer de variable comme ca d'une page à l'autre. Donc ta variable pageEnCours sera toujours non initialisée dans ton 1er script.

 

- Enfin, tu ne peux pas creer une chaine sur plusieurs lignes. Il faut que ton document.write soit défini sur une seule ligne.

 

L'exemple que je t'avais donné recréait la page index en dynamique (donc on pouvait donner l'URL pour la page visu) et l'affichait mais c'est vrai que si ta page contient du PHP, ca ne fonctionnera pas.

 

Je te conseille 2 solutions :

1/ Tu laisses tomber les frames et tu utilises des pseudo frames PHP. On en a deja parlé sur ce forum plusieurs fois comme ici

2/ Tu mélanges PHP et Javascript pour arriver à ton résultat. En fait, dans le 2eme script, tu passes l'URL de ta page "Visu" en parametre de l'URL vers ta page d'index :


location.replace("/index.php?page=" + document.location.href); 

Et tu récupères le param en PHP dans la page index.php avec (_GET["page"] si tu es en PHP4.1+ sinon, la variable page sera créée automatiquement) dans la page index.php s'il existe, et tu le met comme source pour la frame Visu.

 

La 1ere methode à l'avantage de fonctionner kksoit le navigateur et ses paramètres car elle ne fait pas appel à du script client.

 

Automne

Posté(e)
Y a des problemes dans ce que tu as ecrit :

Ca m'étonne :P

 

- Déjà pour determiner si une variable a été initialisée, il faut utiliser typeof(nomVariable) != "undefined" et non !nomVariable

Oups, je savais po

 

- Ensuite, tu ne peux pas passer de variable comme ca d'une page à l'autre. Donc ta variable pageEnCours sera toujours non initialisée dans ton 1er script.

Ah ... on peut passer une variable d'une page à l'autre :-P

 

- Enfin, tu ne peux pas creer une chaine sur plusieurs lignes. Il faut que ton document.write soit défini sur une seule ligne.

Arggg

Oki

 

L'exemple que je t'avais donné recréait la page index en dynamique (donc on pouvait donner l'URL pour la page visu) et l'affichait mais c'est vrai que si ta page contient du PHP, ca ne fonctionnera pas.

Je suis tout en php (ou presque)

 

Je te conseille 2 solutions :

1/ Tu laisses tomber les frames et tu utilises des pseudo frames PHP. On en a deja parlé sur ce forum plusieurs fois comme ici

Vi, je connais, je le fais déjà en php.

 

2/ Tu mélanges PHP et Javascript pour arriver à ton résultat. En fait, dans le 2eme script, tu passes l'URL de ta page "Visu" en parametre de l'URL vers ta page d'index :


location.replace("/index.php?page=" + document.location.href); 

Et tu récupères le param en PHP dans la page index.php avec (_GET["page"] si tu es en PHP4.1+ sinon, la variable page sera créée automatiquement) dans la page index.php s'il existe, et tu le met comme source pour la frame Visu.

Ca a l'air pas mal comme idée.

 

La 1ere methode à l'avantage de fonctionner kksoit le navigateur et ses paramètres car elle ne fait pas appel à du script client.

 

Automne

 

Hum, en conclusion je dirais que je vais rester en php et que le javascript à part le history.go(-1) ne sert à rien :-(

 

Merci Automne de t'etre penché sur le problème, je vais réfléchir à tout ca et peut etre revenir au pseudoframe ... tout simplement.

 

777

Posté(e)

Hum, en conclusion je dirais que je vais rester en php et que le javascript  à part le history.go(-1) ne sert à rien :-(

Si ca sert le javascript. En ce moment je developpe sur une appli en HTML/Javascript pour du décisionnel bancaire. En gros on est en train de recreer des tableaux type Excel avec toute la mecanique de mise à jour et de calculs en cascade en Javascript. C'est marrant et ca fonctionne bien mais quand meme assez complexe à mettre en place :P

 

Merci Automne de t'etre penché sur le problème, je vais réfléchir à tout ca et peut etre revenir au pseudoframe ... tout simplement.

De rien :-P

Les pseudo frames pour ton probleme c'est quand meme la méthode la plus simple à mettre en oeuvre et la plus universelle c'est pour ca que je t'en parlais. En tout cas, la solution full javascript ne fonctionne que si tu n'as pas de PHP. Avec le PHP, comme tu es obligé de charger ta page du serveur et non la générer dynamiquement du coté client, tu es obligé de mélanger du javascript et du PHP pour arriver à tes fins.

 

En tout cas, bonne reflexion et si tu as besoin d'un coup de main, pas de probleme :-P

 

Automne

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...