Inclusion dans des IFrames
12 messages
• Page 1 sur 1
Consultez la formation au REFERENCEMENT naturel Google de WebRankInfo / Ranking Metrics
- Phoenix35
- Nouveau WRInaute

- Messages: 6
- Inscription: 4 Nov 2003
Inclusion dans des IFrames
Je vous explique mon petit soucis
J’ai trois pages index.html, sommaire.html et contenu.html
Dans index.html, j’ai une iframe nommée « principal » et cette iframe appelle la page sommaire nommée sommaire.html Sur cette page sommaire, y'a un lien qui pointe vers contenu.html avec un target dans l'iframe, càd, "principal".. et donc au clkc la page contenu.html s'ouvre bien dans l'iframe ...... jusqu'à la pas de soucis !!
Comme je ne veux pas que les pages de mon site s'ouvre individuellement lorsque l'on tape leur url directe, j'ai mis sur la page contenu html ce javascript
<SCRIPT LANGUAGE="JavaScript">
if (parent.frames.length < 1)
{
document.location.href = 'http://www.xxxxx.com';
}
</SCRIPT>
qui renvoie le visiteur à ma page d'index de site si l'url directe de contenu.html est tapée dans le navigateur
L'inconvénient c'est que le visiteur doit retrouver sur le site la page qu'il a demandée en cliquant sur son lien direct sur un moteur de recherche par exemple.... et ca c'est pas évident !
Alors mon pb a été de chercher un script qui forcerait l'ouverture de la page contenu html DANS l'iframe de la page index.html afin que le visiteur est par la suite la possibilité de naviguer sur tout le site
Tout y est passé ALL HTML, éditeur javascrpt, je pense que j'ai tout essayé !! Mais rien ne marche, irrémédiablement j'ai la page index.html avec la page sommaire.html dans l'iframe
Bon !!
J'ai essayé de trouver et tester plusieurs script qui me permettrait
Je veux peut etre faire trop compliqué, alors je m'adresse aux pros de l'html... car la j'ai mal à la tete
Merci pour votre aide !!
J’ai trois pages index.html, sommaire.html et contenu.html
Dans index.html, j’ai une iframe nommée « principal » et cette iframe appelle la page sommaire nommée sommaire.html Sur cette page sommaire, y'a un lien qui pointe vers contenu.html avec un target dans l'iframe, càd, "principal".. et donc au clkc la page contenu.html s'ouvre bien dans l'iframe ...... jusqu'à la pas de soucis !!
Comme je ne veux pas que les pages de mon site s'ouvre individuellement lorsque l'on tape leur url directe, j'ai mis sur la page contenu html ce javascript
<SCRIPT LANGUAGE="JavaScript">
if (parent.frames.length < 1)
{
document.location.href = 'http://www.xxxxx.com';
}
</SCRIPT>
qui renvoie le visiteur à ma page d'index de site si l'url directe de contenu.html est tapée dans le navigateur
L'inconvénient c'est que le visiteur doit retrouver sur le site la page qu'il a demandée en cliquant sur son lien direct sur un moteur de recherche par exemple.... et ca c'est pas évident !
Alors mon pb a été de chercher un script qui forcerait l'ouverture de la page contenu html DANS l'iframe de la page index.html afin que le visiteur est par la suite la possibilité de naviguer sur tout le site
Tout y est passé ALL HTML, éditeur javascrpt, je pense que j'ai tout essayé !! Mais rien ne marche, irrémédiablement j'ai la page index.html avec la page sommaire.html dans l'iframe
Bon !!
J'ai essayé de trouver et tester plusieurs script qui me permettrait
Je veux peut etre faire trop compliqué, alors je m'adresse aux pros de l'html... car la j'ai mal à la tete
Merci pour votre aide !!
-

George Abitbol - WRInaute passionné

- Messages: 1923
- Inscription: 6 Juin 2003
Lorsque tu rediriges ton visiteur, il faut que tu passes dans l'URL un paramètre qui va te permettre de savoir quel fichier inclure dans l'iframe.
Exemple :
Bien sûr, ça ne suffit pas. Il faut maintenant :
- récupérer le paramètre (c'est expliqué ici)
- l'utiliser pour charger le contenu de l'iframe. Ceci devrait suffire :
(à exécuter au chargement de la page, et après la récupération du paramètre, bien sûr)
Il faudra quand même que tu vérifies que le paramètre correspond bien à un fichier de ton site, sinon n'importe qui pourrait écrire index.html?i=h**p://www.blabla.com/nimportequoi et inclure n'importe quel fichier dans ton iframe
Fred
<edit>Au passage, note que j'ai fait quelques modifications à ton code javascript afin de le rendre correct</edit>
Exemple :
- Code: Tout sélectionner
<script type="text/javascript">
<!--
if (parent.frames.length < 1) {
window.location.href = 'http://www.xxxxx.com/index.html?i=contenu';
}
//-->
</script>
Bien sûr, ça ne suffit pas. Il faut maintenant :
- récupérer le paramètre (c'est expliqué ici)
- l'utiliser pour charger le contenu de l'iframe. Ceci devrait suffire :
- Code: Tout sélectionner
window.principal.location.href = leParametre + '.html';
(à exécuter au chargement de la page, et après la récupération du paramètre, bien sûr)
Fred
<edit>Au passage, note que j'ai fait quelques modifications à ton code javascript afin de le rendre correct</edit>
- Phoenix35
- Nouveau WRInaute

- Messages: 6
- Inscription: 4 Nov 2003
Bon si je comprend le principe !! J'ai du mal effectivement à saisir le fonctionnement, je suis plus a l'aise en php qu'en Javascript ;-(
Pour le code de récupération, je pense que tu parles de ce script
<script type="text/javascript" language="javascript">
<!-- Début
// ***************************************
// À MODIFIER - AJOUTER DES PARAMÈTRES ICI
// ***************************************
// Créer les variables avec leur contenu
// basé sur la requête:
// ?nom=...&prenom=...&email=...
nom = ParamValeur("nom");
prenom = ParamValeur("prenom");
email = ParamValeur("email");
// End -->
</script>
Que je modifie avec mes parametres !!
Bon ca c'est ok maintenant le prblème est de comprendre et de savoir quelle code a désormais mon iframe, je pense qu'il faut faire une relation avec !!
Pour le code de récupération, je pense que tu parles de ce script
<script type="text/javascript" language="javascript">
<!-- Début
// ***************************************
// À MODIFIER - AJOUTER DES PARAMÈTRES ICI
// ***************************************
// Créer les variables avec leur contenu
// basé sur la requête:
// ?nom=...&prenom=...&email=...
nom = ParamValeur("nom");
prenom = ParamValeur("prenom");
email = ParamValeur("email");
// End -->
</script>
Que je modifie avec mes parametres !!
Bon ca c'est ok maintenant le prblème est de comprendre et de savoir quelle code a désormais mon iframe, je pense qu'il faut faire une relation avec !!
-

George Abitbol - WRInaute passionné

- Messages: 1923
- Inscription: 6 Juin 2003
Phoenix35 a écrit:Bon ca c'est ok maintenant le prblème est de comprendre et de savoir quelle code a désormais mon iframe, je pense qu'il faut faire une relation avec !!
Je ne comprends pas trop de quoi tu parles, là.
Une fois que tu as récupéré le paramètre (dans mon exemple, c'était 'contenu'), il suffit je pense de faire window.principal.location.href = leParametre + '.html';
Le paramètre contenant 'contenu', ça chargera bien le fichier contenu.html dans l'iframe principal.
Cela dit, si tu préfères (et je te comprends), tu peux récupérer le paramètre en PHP, et l'insérer dans la ligne ci-dessus : window.principal.location.href = '<?php echo $_GET['i']; ?>.html';
Fred
- Phoenix35
- Nouveau WRInaute

- Messages: 6
- Inscription: 4 Nov 2003
Ah d'accord !! Oui j'ai pigé !!
bon je vais essayer cela de suite !!
Par contre une dernière petite question, qui concerne php qui rejoint un peu le sujet de mon post
Dans une page xxx.php3, j'ai un
<? include('bandeau.php3'); ?>
Je voudrais maintenant éviter, par exemple, si Google indexe le fichier bandeau.php3, que le visiteur ait accès à ce fichier.
En fait, je voudrais que si l'on appelle le fichier bandeau php3, que ce soit la page xxx.php3 qui s'ouvre
On peut aussi penser à un Disallow dans un fichier ROBOTS.TXT ?
Quelle est la solution la plus simple à ton avis ?
bon je vais essayer cela de suite !!
Par contre une dernière petite question, qui concerne php qui rejoint un peu le sujet de mon post
Dans une page xxx.php3, j'ai un
<? include('bandeau.php3'); ?>
Je voudrais maintenant éviter, par exemple, si Google indexe le fichier bandeau.php3, que le visiteur ait accès à ce fichier.
En fait, je voudrais que si l'on appelle le fichier bandeau php3, que ce soit la page xxx.php3 qui s'ouvre
On peut aussi penser à un Disallow dans un fichier ROBOTS.TXT ?
Quelle est la solution la plus simple à ton avis ?
- mayavega
- WRInaute discret

- Messages: 59
- Inscription: 31 Oct 2003
vachement bien
vachement interessante cette discussion, pour mon site, que je n'ai pas encore référencé, il va surement falloir que je le fasse de la même manière puisse qu'il possèe aussi une iframe principale de navigation, et que je veux la même chose...
cela dit... (shame on me) j'ai pas tout compris...
surtout au i=contenu ("i" c quoi, "contenu" ça correspond à koi ?)et le document.lenght...
oui oki je sort...
et je vais sur un site de php et de javascript...
bon ça va... j'aurais bien aimé que ça soit tou maché précuit et que ça tombe du ciel... qui ne tente rien n'a rien.
cela dit... (shame on me) j'ai pas tout compris...
surtout au i=contenu ("i" c quoi, "contenu" ça correspond à koi ?)et le document.lenght...
oui oki je sort...
et je vais sur un site de php et de javascript...
bon ça va... j'aurais bien aimé que ça soit tou maché précuit et que ça tombe du ciel... qui ne tente rien n'a rien.
-

George Abitbol - WRInaute passionné

- Messages: 1923
- Inscription: 6 Juin 2003
Ben déjà, comment Google ou un internaute pourrait-il connaître ton fichier bandeau.php3 ?
Si tu n'as aucun lien direct vers ce fichier, il ne pourra pas être indexé. Et à moins d'être devin, aucun internaute ne pourra deviner que tu as un fichier qui s'appelle bandeau.php3.
Mais bon, au cas où, ce que tu peux faire, c'est avant de faire ton include(), tu définis une variable (genre $inc_bandeau) et dans bandeau.php3, tu testes l'existence et la valeur de cette variable. Si elle n'existe pas ou si elle n'a pas la bonne valeur, tu fais un header() vers le fichier global.
Fred
Si tu n'as aucun lien direct vers ce fichier, il ne pourra pas être indexé. Et à moins d'être devin, aucun internaute ne pourra deviner que tu as un fichier qui s'appelle bandeau.php3.
Mais bon, au cas où, ce que tu peux faire, c'est avant de faire ton include(), tu définis une variable (genre $inc_bandeau) et dans bandeau.php3, tu testes l'existence et la valeur de cette variable. Si elle n'existe pas ou si elle n'a pas la bonne valeur, tu fais un header() vers le fichier global.
Fred
-

George Abitbol - WRInaute passionné

- Messages: 1923
- Inscription: 6 Juin 2003
Re: vachement bien
mayavega a écrit:cela dit... (shame on me) j'ai pas tout compris...
surtout au i=contenu ("i" c quoi, "contenu" ça correspond à koi ?)et le document.lenght...
Alors, dans l'ordre :
- i c'est le nom que je décide arbitrairement de donner au paramètre. J'aurais pu choisir zgru ou pouf, mais j'ai pris i comme iframe.
- contenu, c'est la valeur du paramètre. Ici, c'est tout simplement le nom du fichier à inclure, mais sans l'extension. Ce n'est pas la seule façon de faire. On pourrait envisager de donner une valeur numérique à ce paramètre, et ensuite de faire la correspondance entre le nombre et le fichier à inclure (genre 1 c'est pour le fichier contenu.html, 2 ce serait pour le fichier trucbidule.html, etc.)
- document.length... ben ça y est nulle part
frames est un sous-objet de l'objet window. C'est un tableau qui contient toutes les frames de l'objet window auquel tu l'appliques (parent.frames : toutes les frames de la fenêtre parente ; trucbidule.frames : toutes les frames de la fenêtre nommée trucbidule, self.frames : les frames de la fenêtre en cours, etc.).
Et enfin length est une propriété qui donne la longueur du tableau auquel elle est appliquée.
Donc pour résumer, parent.frames.length signifie la longueur (le nombre d'éléments, donc) du tableau de frames de la fenêtre parente. Si cette longueur est est inférieure à 1, c'est que la page n'est pas contenue dans un jeu de frames, et il faut donc faire le traitement (redirection).
Ce sont des explications sommaires, je te conseille effectivement de consulter les docs Javascript et PHP pour en savoir plus.
Docs JS :
http://devedge.netscape.com/central/javascript/
http://selfhtml.selfhtml.com.fr/javascript/index.htm
http://www.devguru.com/Technologies/ecm ... intro.html
Doc officielle PHP en français :
http://www.php.net/manual/fr/
Fred
- Phoenix35
- Nouveau WRInaute

- Messages: 6
- Inscription: 4 Nov 2003
Bon !! Avec toute la meilleure volonté du monde, je ne réussis pas a ouvrir la page dans l'iframe....
Pourtant il me semble avoir bien suivi tes instructions juge par toi meme !
-Fichier Index.php
<html>
<head>
<title>Page d'index</title>
</head>
<script type="text/javascript" language="javascript">
<!-- Début
i = ParamValeur("html");
window.principal.location.href = i + '.html';
// End -->
</script>
<body>
<p>Page d'index</p>
<p<iframe width="99%" height="1300" src="mon_fichier_defaut" frameborder="0" vspace=0 scrolling=no name=principal></iframe></p>
</body>
</html>
Eensuite j'ai ma page qui souvre dans mon iframe par défaut indexdroit.php3 (Fichier par défaut)
<html>
<head>
<title>Page d</title>
</head>
<body>
<p>page index droit</p>
<p>&</p>
</body>
</html>
Et enfin la page1.php
<html>
<head>
<title>Page d</title>
<script type="text/javascript">
<!--
if (parent.frames.length < 1) {
window.location.href = 'http://www.xxx.com/index.php?i=page1';
}
//-->
</script>
</head>
<body>
<p>page autre page</p>
<p>&</p>
</body>
</html>
Et bien j'ai beau appeler la page1.php directement dans la navigateur, l'url indique alors http://www.xxx.com/index.php?i=page1
Ce qui me semble correcte pourtant !!
Mais c'est toujours la page par défaut qui est lue dans l'iframe !!
Je pense que je ne dois aps être loin mais la !! Pfffff !! Mal de crane !!
Si tu peux m'aider une dernière fois George
Pourtant il me semble avoir bien suivi tes instructions juge par toi meme !
-Fichier Index.php
<html>
<head>
<title>Page d'index</title>
</head>
<script type="text/javascript" language="javascript">
<!-- Début
i = ParamValeur("html");
window.principal.location.href = i + '.html';
// End -->
</script>
<body>
<p>Page d'index</p>
<p<iframe width="99%" height="1300" src="mon_fichier_defaut" frameborder="0" vspace=0 scrolling=no name=principal></iframe></p>
</body>
</html>
Eensuite j'ai ma page qui souvre dans mon iframe par défaut indexdroit.php3 (Fichier par défaut)
<html>
<head>
<title>Page d</title>
</head>
<body>
<p>page index droit</p>
<p>&</p>
</body>
</html>
Et enfin la page1.php
<html>
<head>
<title>Page d</title>
<script type="text/javascript">
<!--
if (parent.frames.length < 1) {
window.location.href = 'http://www.xxx.com/index.php?i=page1';
}
//-->
</script>
</head>
<body>
<p>page autre page</p>
<p>&</p>
</body>
</html>
Et bien j'ai beau appeler la page1.php directement dans la navigateur, l'url indique alors http://www.xxx.com/index.php?i=page1
Ce qui me semble correcte pourtant !!
Mais c'est toujours la page par défaut qui est lue dans l'iframe !!
Je pense que je ne dois aps être loin mais la !! Pfffff !! Mal de crane !!
Si tu peux m'aider une dernière fois George
-

George Abitbol - WRInaute passionné

- Messages: 1923
- Inscription: 6 Juin 2003
Plusieurs erreurs :
- Tu as oublié la déclaration de la fonction ParamValeur(), lorsque tu as copié le code sur le site donné plus haut.
- Lorsque tu appelles le chargement du fichier, la page n'est pas complètement chargée, donc l'iframe n'existe pas encore.
- Tu utilises .html, dans le code, alors que la page a une extension .php
Tu peux faire comme ça :
Fichier index.php :
J'ai zappé la fonction Javascript, puisque tu as la possibilté de récupérer le paramètre en PHP.
Si tu utilises une version de PHP antérieure à la 4.1.0, utilise $HTTP_GET_VARS['i'] à la plage de $_GET['i']. Ou alors passe à une version plus récente
Fred
- Tu as oublié la déclaration de la fonction ParamValeur(), lorsque tu as copié le code sur le site donné plus haut.
- Lorsque tu appelles le chargement du fichier, la page n'est pas complètement chargée, donc l'iframe n'existe pas encore.
- Tu utilises .html, dans le code, alors que la page a une extension .php
Tu peux faire comme ça :
Fichier index.php :
- Code: Tout sélectionner
<html>
<head>
<title>Page d'index</title>
</head>
<body onload="window.principal.location.href = '<?php echo $_GET['i']; ?>.php';">
<p>Page d'index</p>
<iframe width="99%" height="1300" src="indexdroit.php" frameborder="0" vspace=0 scrolling=no name=principal></iframe>
</body>
</html>
J'ai zappé la fonction Javascript, puisque tu as la possibilté de récupérer le paramètre en PHP.
Si tu utilises une version de PHP antérieure à la 4.1.0, utilise $HTTP_GET_VARS['i'] à la plage de $_GET['i']. Ou alors passe à une version plus récente
Fred
12 messages
• Page 1 sur 1
Formation recommandée sur ce thème :
Formation REFERENCEMENT naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Métas et inclusion
- inclusion payante
- inclusion de fichiers
- Paid inclusion, trusted feed, etc
- inclusion de la video sur forum WRI
- Se faire blacklister direct apres inclusion... possible ?
- Inclusion dans l'annuaire d'Alice (Nomade)
- PHP - Inclusion de toutes les fonctions ?
- Inclusion directe de librairies - Besoin d'aide
- Inclusion (piratage) de code dans mes pages
- WebRankInfo interroge Google sur AdSense - 18-04-2004
- Google contre les spywares et les adwares - 21-05-2004
- Nouvelles fonctionnalités pour Google Sitemaps - 27-04-2006
- Google Instant Preview : correction du bug Google Analytics - 01-12-2010
- Interview de l'équipe Google AdSense - 19-04-2004
- Les blogs (Search Engine Strategies 2004 - San José) - 06-08-2004
- Google API : guide de développement de l'API Google - 20-09-2002
- Google Pack : des logiciels à télécharger gratuitement - 07-01-2006
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
