all HTML

Accèdez à votre compte : 

Créer un compte …

Perte de mot de passe …

  • Accueil
  • Forum de discussions
  • Publications
  • Communauté

Poser une question

Sélection des sujets

  • Toutes les discussions
  • Questions sans réponse
  • par langage de programmation :
    html css javascript php sql asp xml java C# action script
  • par thématique :
    animation - motion design graphisme - webdesign audio - vidéo accessibilité droit - législation web apps - logiciels référencement - seo hébergement administration serveur site web e-commerce

Lien vers Popup

Sujet publié le 10/10/2001 par SuperFly et classé dans html css

Bonjour,

c'est encore moi (decidement je peux plus me passer de vous!), j'aimerais qu'un lien s'ouvre vers une fenetre popup basique, dont je peux specifier la taille. J'ai essayer plusieurs methodes, je m'en sors pas, donc si qq'un connait la technique, je lui en serais tres reconnaissant.

Merci

par SuperFly, 10/10/2001 à 07h00
-=| SuperFly |=- <http://www.superfly.fr.fm> <http://www.ludo.fr.tf>

répondre

<a href="#" onClick="javascript:window.open('lien.html', '', 'width=100, height=200, left=0, top=0');">lien</a>

par WarGoat, 10/10/2001 à 08h05
[:-(((] WarGoat

Ca marche, merci de ton efficacite !

par SuperFly, 10/10/2001 à 08h17
-=| SuperFly |=- <http://www.superfly.fr.fm> <http://www.ludo.fr.tf>

euh ... juste une petite question... quand je clique sur mon lien, ca m'ouvre bien le popup que je veux mais il me reouvre en meme temps la page ou se trouve le lien avec la meme adresse + # a la fin.

c'est normal ?

j'ai essaye d'enlever le # dans a href="#" mais il m'ouvre une fenetre IE vierge.

par SuperFly, 10/10/2001 à 08h35
-=| SuperFly |=- <http://www.superfly.fr.fm> <http://www.ludo.fr.tf>

oui, normal : # est une ancre, et comem elle n'est pas définie, il te remet tout en haut de la page.
essaie :

<a href="javascript:window.open('lien.html', '', 'width=100, height=200, left=0, top=0');">lien</a>


mais pour une raison que je ne connais pas, ça ne marche pas toujours

par WarGoat, 10/10/2001 à 08h39
[:-(((] WarGoat

C'est bon j'ai resolu le probleme avec target="frame" le lien ouvre uniquement le popup.

Encore merci (+)

par SuperFly, 10/10/2001 à 08h52
-=| SuperFly |=- <http://www.superfly.fr.fm> <http://www.ludo.fr.tf>

Il faut mettre un return false à l'événement (onClick dans le cas présent) afin d'annuler le lien hypertexte:

Aussi, sur un événement javascript, il n'est pas nécessaire de préciser le langage...

<a href="#" onClick="window.open('lien.html', '', 'width=100, height=200, left=0, top=0');return false;">lien</a>

par padro, 10/10/2001 à 09h19

@WarGoat:

Salut!


onClick="javascript:..." n'est pas une bonne syntaxe (voir mon post du 1/10 20:53 http://www.allhtml.com/forum/?t=l&f=1&i=2817)

La mention d'un Event Handler (sorry s'il existe un nom français pour ces trucs, je ne le connais pas encore) implique déjà l'utilisation de syntaxe JavaScript par la suite. Il est donc inutile et faux de repréciser par l'intermédiaire de "javascript:" qu'il s'agit de JavaScript!

Donc:
onClick="window.open('...')", onMouseover="window.status('...'), etc...

ou alors directement: <a href="javascript:...">...</a> etc.

Pour la question avec l'ancre #...

On peut utiliser "return false". Ceci empêche que le lien vers un ancre inexistante soit effectué, ce qui, comme tu l'as bien précisé, fait remonter au début du document. Le lien complet de l'exemple
serait donc:

<a href="#" onClick="window.open('lien.html', '', 'width=100, height=200, left=0, top=0'); return false">lien</a>

Là, seuls les navigateurs ne supportant pas JavaScript (ou ceux où l'utilisateur l'a déactivé) suivront le lien à l'ancre #.

Ce return false permet donc de faire effectuer un lien par tous les navigateurs (ceux qui supportent JavaScript et les autres) en indiquant au lieu d'une ancre inexistante:

<a href="lien.html" onClick="window.open('lien.html', '', 'width=100, height=200, left=0, top=0'); return false">lien</a>

Là, les navis sans JavaScript ouvriront le lien dans la même fenêtre et tous les autres ouvriront un popup.

Patrick

par PAF, 10/10/2001 à 11h44
Patrick Andrieu, webmestre SELFHTML actuel (<http://www.selfhtml.com.fr> - depuis 10/12/2001 avec forum!!!)

POUR : <a href="javascript:...">...</a>

si tu fais un window.open par exemple, dans le fenêtr mère, tu peux avoir une page vide qui s'affiche, avec marqué seulement
[Object]
à l'intérieur

donc, pas terrible comme solution

onClick="javascript:..." me semble être la seule solution efficace à 100%


POUR LE RETURN FALSE
ok (+)

par WarGoat, 10/10/2001 à 11h58
[:-(((] WarGoat

Re!

>> si tu fais un window.open par exemple, dans le fenêtr mère, tu peux avoir une page vide qui s'affiche, avec marqué seulement
[Object]
à l'intérieur

Là aussi, return false peut aider.

>> onClick="javascript:..." me semble être la seule solution efficace à 100%

Même si cela fonctionne, la syntaxe n'est pas des plus correctes ;-). Comme précisé, les Event Handler (Serge a traduit ceci par "gestionnaires d'évènements") implique déjà la mention de syntaxe JavaScript. Disons que c'est une sorte d'interface entre HTML et JavaScript: http://www.selfhtml.com.fr/selfhtml/tebj.htm#a1

Là, je dois partir au boulot dans quelques minutes, mais ce soir ou demain matin je vais faire un petit Workaround à ce sujet avec plusieurs exemples que je placerai sur mon site (pas sur SELFHTML cette fois, mais sur une page spéciale de mon site perso http://www.atomic-eggs.com/. Sinon, visite uniquement intéressante pour les lecteurs parlant allemand [;)])

Patrick

par PAF, 10/10/2001 à 12h12
Patrick Andrieu, webmestre SELFHTML actuel (<http://www.selfhtml.com.fr> - depuis 10/12/2001 avec forum!!!)

@WarGoat:

Salut!

Je reprends ton dernier post et mon dernier post sur ce thread.

WarGoat wrote:

>> POUR : <a href="javascript:...">...</a>
>> si tu fais un window.open par exemple, dans le fenêtr mère, tu peux avoir une page vide qui s'affiche, avec marqué seulement [Object] à l'intérieur

Patrick wrote:

>> Là aussi, return false peut aider.

Un point pour toi: là, j'ai tort. Dans un lien avec "javascript:window.open(...)", il n'est pas possible de placer return false sans obtenir d'erreur: (-) pour moi!


WarGoat wrote:

>> onClick="javascript:..." me semble être la seule solution efficace à 100%

Mais là, c'est toi qui as tort. Mis à part que, ne connaissant pas de tutorial JavaScript en français, je ne sais pas où t'envoyer pour que tu admettes que onClick="javascript:..." ne sert à rien, j'en ai fait l'exemple: http://www.atomic-eggs.com/halle/wargoat.html.

Cette page reprend les 3 possibilités dont nous avons discuté jusqu'à présent (donc: <a href="javascript:window.open(...)">, onClick="javascript:window.open(...)" et onClick="window.open(...);return false) en montrant le code et les liens à tester soi-même.

Excuse-moi si je peux te paraître pénible ([:D]), mais si je ne l'étais pas, je ne passerais pas tout mon temps libre à faire le boulot que j'indique dans la signature de mes posts... [:D]

Patrick

par PAF, 12/10/2001 à 00h21
Patrick Andrieu, webmestre SELFHTML actuel (<http://www.selfhtml.com.fr> - depuis 10/12/2001 avec forum!!!)

Juste une petite question, qu'est ce qu'il faut rajouter comme parametre pour choisir le Titre du popup [(??)]

j'utilise ce lien : <a href="#" onClick="javascript:window.open('http://www.ludo.fr.tf/chat', '', 'width=500, height=580, left=0, top=0, scrollbars=no, resizable=yes' );"> et j'aimerais rejouter le nom du POPUP soit CHAT ....

merci
[;-))]

par SuperFly, 13/10/2001 à 06h37
-=| SuperFly |=- <http://www.superfly.fr.fm> <http://www.ludo.fr.tf>

Salut SuperFly!


Le titre du popup sera automatiquement celui du fichier qui sera chargé à l'intérieur de la fenêtre popup...

Avec IE, on peut manipuler le titre avec document.title, mais je n'ai jamais essayé ça. D'autre part, ça ne marchera qu'à l'intérieur du document chargé.

>>j'utilise ce lien : <a href="#" onClick="javascript:

forget onClick="javascript:..." (et lis la discussion) [:D]

Patrick

par PAF, 13/10/2001 à 07h35
Patrick Andrieu, webmestre SELFHTML actuel (<http://www.selfhtml.com.fr> - depuis 10/12/2001 avec forum!!!)

SuperFly > Faut pas mélanger titre et name

Une fenêtre ne peut pas avoir de titre mais un nom ("name"). Alors on peut parler du nom du popup, et l'utiliser comme un target, mais le titre d'un popup çà n'existe pas et ce n'est pas possible.

Le titre, c'est relatif au document que contiendra la fenêtre. Alors on ne parle pas du titre de la popup mais du titre du document.

Pour spécifier le "name" de la fenêtre tu dois faire ainsi:
window.open('http://www.ludo.fr.tf/chat','chat','width=500,height=580,left=0,top=0,scrollbars=no,resizable=yes')

Pour spécifier le titre d'un document tu dois utiliser la balise title:
<title>Ceci est le titre du document contenu dans la popup nommée "chat"</title>


PS:
Le lien que tu utilises contient deux erreurs dont tu devrais tenir compte.
1- Tu dois ajouter l'instruction return false à ton lien (voir exemple plus bas).
2- Il est inutile de spécifier le langage (javascript) sur une instruction d'événement (voir exemple plus bas). C'est ce que PAF tente désespérément d'expliquer à WarGoat sur ce post.


Exemple démontrant le bon code à utiliser. Examiner attentivement svp..! afin de bien repérer les différences avec le code proposé initialement:
<a href="#" onClick="window.open('http://www.ludo.fr.tf/chat','chat','width=500,height=580,left=0,top=0,scrollbars=no,resizable=yes');return false;">

par padro, 13/10/2001 à 12h50

Salut padro!


Merci pour tes précisions (concernant title/name) et d'être venu à ma rescousse (>> ce que PAF tente désespérément d'expliquer) [:D]

Je suis en train de rédiger un article spécialisé sur l'emploi de la méthode open() rassemblant tout ce dont nous venons de discuter ainsi que deux ou trois tuyaux se trouvant sur une vieille rubrique du site allemand de SELFHTML (cette rubrique, à laquelle j'avais moi-même travaillé en 98 et 99, est toujours sur le site, mais n'est plus indiquée "officiellement"). Je désire également aborder le nom réservé opener, vu qu'il y souvent des questions à ce sujet. Je ne peux pas encore donner de date de parution, vu que j'ai 5 ou 6 articles spécialisés, traduits de l'Allemand par Serge, à relire et à mettre en ligne.

Pour en revenir au sujet, je voudrais présenter une méthode permettant d'atteindre tous les navigateurs (ceux supportant JavaScript ainsi que les autres), laquelle avait été proposée sur cette rubrique dont je viens de parler par Christine Kühnel (auteur des JavaScript-Notizen, site renommé maintenant Netz-Notizen [notices de la toile]: http://www.netz-notizen.de/javascript/index.html - en allemand, malheureusement, car il y a plein de trucs intéressants sur le site).

Chrisine proposait cette solution (http://www.teamone.de/selfhtml/sfausles/tsfa_tcd.htm):

<html>
<head>
<title>Liens JavaScript</title>
<script language="JavaScript" type="text/javascript">
<!--

function targetLink(URL)
{
if(document.images)
targetWin = open(URL,"nouvelle_fenetre","width=400,height=300");
}

//-->
</script>
</head>

<body>

<a href="ziel.htm" target="_blank" onClick="targetLink('ziel.htm');return false">Text</a>

</body>
</html>

La fonction targetLink() n'attend que l'URL comme paramètre, vu que le window.open() y est défini à l'intérieur avec tous les autres paramètres, donc: le nom (name) de la fenêtre et la chaîne de paramètres pour taille et aspect de la fenêtre. La demande "if(document.images)" sert à filtrer les navigateurs ne supportant que JavaScript 1.0 (par ex. Netscape 2 et IE 3), lesquels, ne connaissant pas l'objet JavaScript images, sont de ce fait catégorisés parmi les browsers sans JavaScript.

Le résultat est que les navis supportant JavaScript version supérieure à 1.0 ouvriront une fenêtre popup de 400*300 pixel, les autres effectueront le lien en ouvrant une deuxième fenêtre "normale" grâce à target="_blank" - et même les plus vieux des navis seront satisfaits: ne connaissant pas target="_blank", ils chargeront la page ciblée dans la fenêtre d'origine [:D]

Patrick

par PAF, 13/10/2001 à 13h53
Patrick Andrieu, webmestre SELFHTML actuel (<http://www.selfhtml.com.fr> - depuis 10/12/2001 avec forum!!!)

Merci beaucoup pour toutes ces precisions, maintenant je suis un specialiste du popup ! [8)]

Je vais essayer cette methode...

Merci (+)

par SuperFly, 13/10/2001 à 14h34
-=| SuperFly |=- <http://www.superfly.fr.fm> <http://www.ludo.fr.tf>

répondre

  • nous contacter
  • mentions légales