Forum de discussion
Forum « Programmation HTML » (archives)
Re: comment une page html peut donner des ordres à une autre page html et ouvrir un URL via target
Envoyé: 31 octobre 2003, 8h25 par Oznog
Je pense que ta question dépasse largement ce que tu veux faire. Enfin c'est louable pour toi c'avoir essayé de posser une question claire, merci.
Je vais donc aussi répondre à la question du sujet plus bas mais avant de compliquer la chose, je vais expliquer comment ouvrir une page dans un cadre d'un "jeu de cadres" (frameset).
1. Ton pot de fleur (image ou peut importe) doit être dans une page HTML, disont page2.htm.
2. Dans la "la première fenetre" (disont page1.htm) tu peux indiquer à un hyperlien, l'endroit où tu veux ouvrir la page. C'Est ce que l'on appelle une cible ou "target". Tu as le choix entre 5 "lieu" ou "target". (Note que si une cible n'existe pas, le lien remplacera la page qui l'a appelée.
- _self : En restant dans le même cadre ou page. C'est d'ailleurs l'action par défaut si tu n'indique pas de cible (target).
<a href="page2.htm" target="_self">Ce lien remplace la page courrante</a>
- _blank : Nouvelle page. Le lien ouvre d'abord une nouvelle fenêtre (window) pour ensuite y ouvrir la page.
<a href="page2.htm" target="_blank">Ce lien s'ouvrira dans une nouvelle fenêtre</a>
- _top ou _parent : Seulement dans une fenêtre à plusieurs cadre, _top ouvre remplace le "jeu de cadres" (frameset) en entier par la page du lien. _parent fait la même chose mais remplace le "jeu suppérieur" alors si un "jeu" est imbriqué dans un autre "jeu", _parent remplacera seulement le dernier "jeu" par la page du lien et nom pas la fenêtre au complet.
<a href="page2.htm" target="_top">Ce lien remplacera le jeu de cadre</a>
- ET ENFIN, cibler le nom d'un cadre. Quand tu initialise un "jeu de cadres" (frameset) tu dois donner un nom (name) à chacun des cadres. Ce nom très important permet de justement cibler le bon cadre via un hyperlien. Ainsi si j'ai un "jeu de cadres" (frameset) avec une des cadres qui porte le nom de "corps", il suffir de faire l'hyperlien suivant à partir de n,importe qu'elle "cadre" du "jeu de cadres" (frameset) DU MÊME NIVEAU de cette façon :
<a href="page2.htm" target="corp">Ce lien s'ouvrira dans le cadre corp</a>
Note le target="corp"
POUR TA QUESTION D'ORDRE
1. Ce n'est pas possible de donner des ordres d'une page à l'autre. Et même à une page ASP, PHP ou autre langage serveur.
La seule chose de possible (à part le ASP+) c'est lorsque tu dirige vers une adresse Internet, ou tout autres choses sur le Web, tu peux en même temps envoyer une chaîne de caractère.
Alors dans cette chaîne de caractère, ce que lon appelle l'en-tête HTTP. Tu peux bien sûr user d'astuce et passer plusieurs chose en même temps. La plupart des composantes utilisé sur le Web gère d'ailleurs pour toi ce procédé dit "méthode GET" en scindant la chaine en variable/valeur basé sur le protocole suivant.
page.htm?maVar1=bblabla&maVar2=Blabla
Le "?" indique le premier jeu Variable/valeur et tous les autres doivent être séparés par le "&". Et bien sûr les valeurs sont séparées du nom de la variable par un "=".
C'est toujours comme ça, depuis le début et encore maintenant avec les dernières technologie.
On appelle aussi ça le premier "layer" car après quelques temps d'utilisation, un deuxième "layer" plus robuste et plus stable à été inventé, parallèle en faisant partie intégrale de l'en-tête HTTP se trouve ce deuxième "layer" qui utilise la méthode "POST" pour transmettre de façon cahché un formulaire.
2. Alors la deuxième page ne reçoi donc aucun ordre mais une simple chaîne de caractère. Il suffit pour toi d'avoir un script dans la page courrante (Javascript, ASP, PHP, CGI ou autres) pour traiter cette chaine et ainsi pouvoir donner un "ordre" à ta page courrante.
C'est la base de TOUT, même une application de plusieurs millier de dollards, avec l'usage d'une base de données professionnel doit passer par là!
Avec un langage serveur c'Est plus facile tout simplement parcequ'il offre des outils déjà fait pour traiter cette chaine, en fait il suffit de donner le nom de la variable pour récupérer ça valeur. En Javascript ou Perl (à l'époque) c'est autre chose, tu dois scinder toi même la chaîne.
Voir "Récupérer un formulaire en Javascript" (http://www.trucsweb.com/Javascript/trucs.asp?no=303&type=5).
Ciao
Oznog
Réponses
|