Comportement : Ouvrir une Popup

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Comportement : Ouvrir une Popup

par Sebe » 19 déc. 2007, 15:50

Vite avant d'aller bosser
$page = http://www.kain-buyere.be/components/co ... .earth.php

A ce soir après 23h si tu es encore là !


Merci pour ce que tu as déjà fait

par Truc » 19 déc. 2007, 15:41

Etant donné qu'on ne voit pas le contenu de $page regarde et montre nous le code source de cette ligne
window.open(page,"nom_popup","width=800,height=800,scrollbars=yes,resizable=yes");
Tu récupères l'id comme toute variable passée dans l'url avec $_GET sur la page "$page"

par Sebe » 19 déc. 2007, 15:28

Bon ben, je bloque !

Code : Tout sélectionner

<A href="javascript:ouvre_popup('<?php echo $page . '?id=titi';?>')">Ouverture d'un popup</A> <SCRIPT language="javascript"> function ouvre_popup(page) { //document.write('id= ' + id); window.open(page,"nom_popup","width=800,height=800,scrollbars=yes,resizable=yes"); } </SCRIPT>
Comment faire pour récupérer l'id ?

Merci

par Truc » 19 déc. 2007, 15:08

Ben si mais au cas où il y a une erreur ou que l'utilisateur a désactivé le JS il bascule sur une espèce de _blanck
La s'il n'y a pas d'erreur les deux vont être exécuté le lien href et onclick
Ah ... je me complique la vie alors !
Il me suffit de remplacer ouverture par ce que tu me proposes ! ? !
oui :)

par Sebe » 19 déc. 2007, 13:48

Au final tu veux une popup ou pas ?
Ben si mais au cas où il y a une erreur ou que l'utilisateur a désactivé le JS il bascule sur une espèce de _blanck
$lienearth = '<a href="' . $page . '" target="' . htmlentities($epreuve->epreuve, ENT_QUOTES) . '" onclick="ouverture(this.href,this.target);return false">'
	. '<img src="' . $url . 'logo_earth.jpg' . '" title="' . _VU . '"/>'
	. '</a>';
Non parce que tu peux aussi passer des paramètres au fichier que va ouvrir la popup

Ah ... je me complique la vie alors !
Il me suffit de remplacer ouverture par ce que tu me proposes ! ? !

Merci

par Truc » 19 déc. 2007, 13:15

Parce que ce n'est pas une popup
avec les copains, on trouvait qu'une pop-up était ce qui rendait le mieux !
:boire4:
Au final tu veux une popup ou pas ?

Non parce que tu peux aussi passer des paramètres au fichier que va ouvrir la popup
window.open("fichier.php?var=titi");
ou
window.open("http://www.kain-buyere.be/index2.php?option=com_classement&task=popup&id=21");

par Sebe » 19 déc. 2007, 13:08

J'ai un peu de mal à te suivre mais je suis quasi sur que tu te compliques pas mal la chose... c'est déjà ça :lol:
J'ai souvent des idées mais beaucoup de mal à les exprimer :lol:
Ce n'est pas une popup... ok... pourquoi ne pas mettre un simple lien qui va ouvrir une autre page ?
Ce que tu fais avec la balise <a> mais en plus un onclick pour ouvrir cette même page :-k
Je veux que l'utilisateur puisse suivre le détail du chemin tout en voyant le tracé ... avec les copains, on trouvait qu'une pop-up était ce qui rendait le mieux !

Sinon, il ne faut pas oublier que je code un composant pour [Joomla!] et que le but final est de pouvoir utiliser la mise en page et la sécurité de ce portail dans la popup ... le lien que j'ai mis plus haut deviendrait ceci
au cas où le visiteur a désactivé le JS !
Ouai, c'est pas gagné !

par Truc » 19 déc. 2007, 12:56

J'ai un peu de mal à te suivre mais je suis quasi sur que tu te compliques pas mal la chose... c'est déjà ça :lol:

Ce n'est pas une popup... ok... pourquoi ne pas mettre un simple lien qui va ouvrir une autre page ?
Ce que tu fais avec la balise <a> mais en plus un onclick pour ouvrir cette même page :-k

par Sebe » 19 déc. 2007, 12:43

Salut,
Pourquoi ne pas rester sur ton idée de départ qui est de passer en 1er paramètre de open() le fichier a ouvrir (le même que tu nous montres) et non construire le contenu en js.
Parce que ce n'est pas une popup et que j'aimerai y faire passer des variables car, pour afficher la bonne carte, je dois y faire des requêtes ... attention, je poste aussi dans 'Php débutant' :D

Merci

par Truc » 19 déc. 2007, 12:38

Pourquoi ne pas rester sur ton idée de départ qui est de passer en 1er paramètre de open() le fichier a ouvrir (le même que tu nous montres) et non construire le contenu en js.
window.open("http://www.kain-buyere.be/components/com_classement/classement.earth.php",'newpopup','width=800,height=800,scrollbars=yes,resizable=yes');

par Sebe » 19 déc. 2007, 12:06

Salut,

J'ai mis du temps pour répondre mais, n'étant nul part en JS, je savoir à quoi et comment se servir de 'newpage.document.write' ... par la même occasion, je suis tombé sur des tutos et j'ai essayé de 'Générer une popup avec le code source de la nouvelle page'. Voici mon nouveau code:

Code : Tout sélectionner

<script language="javascript" type="text/javascript"> function ouverture(fichier,winName){ newpage=open("",'newpopup','width=800,height=800,scrollbars=yes,resizable=yes'); newpage.document.write('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">'); newpage.document.write('<html> <head> <title>' + winName + '</title>'); newpage.document.write('<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">'); newpage.document.write('<script language=javascript type=text/javascript src=http://maps.google.com/maps?file=api&v=2.x&key=ABQIAAAAHItW1QS700keXwHcZHo1SBSTES51LFRMh0KGF7wfE8_5zuCo4BRexIPfsLtR_sAZWD2MCwLr_fKxUA>\n'); newpage.document.write('var map;\n'); newpage.document.write('function carte(){\n'); newpage.document.write('if (GBrowserIsCompatible()) {\n'); newpage.document.write('map = new GMap2(document.getElementById(\"map\"));\n'); newpage.document.write('map.addControl(new GLargeMapControl());\n'); newpage.document.write('var geoXml = new GGeoXml(\"http://www.runningho.be/jho/kml/acrho.php?parcours=21\");\n'); newpage.document.write('map.addOverlay(geoXml);\n'); newpage.document.write('map.setCenter(new GLatLng(50.66, 3.37), 13);\n'); newpage.document.write('}\n'); newpage.document.write('}\n'); newpage.document.write('<\/script>\n'); newpage.document.write('</head>'); newpage.document.write('<body onLoad=\"carte()\">'); newpage.document.write('<div id=\"map\" style=\"width:100%;height:100%;\">'); newpage.document.write('</div></body></html>'); } </script> <?php $lienearth = '<a href="' . $page . '" target="' . htmlentities($epreuve->epreuve, ENT_QUOTES) . '" onclick="ouverture(this.href,this.target);return false">' . '<img src="' . $url . 'logo_earth.jpg' . '" title="' . _VU . '"/>' . '</a>'; echo '<tr><td width="50%">'. $message . '</td><td width="50%">'. $lienearth . '</td></tr>'; ?>
Maintenant, cela aurait été trop beau car la carte ne se charge pas hors que pour le même code directement dans une autre page en html cela fonctionne !

Une idée pour bibi ... merci

par Patriboom » 18 déc. 2007, 04:28

Tu pourrais ajouter

Code : Tout sélectionner

newpage.focus();
Ceci peut t'aider:
http://www.javascriptfr.com/code.aspx?ID=15736


Pour limiter le nombre de nouvelles fenêtres, tu dois référer toujours à la même fenêtre (donner toujours le même nom). Aussi, tu peux faire en sorte que la fenêtre perdant l'attention se ferme automatiquement, mais c'est un peu agaçant.:

Code : Tout sélectionner

newpage.document.write('<body onblur="this.close();"><div id="map" style="width:100%;height:100%;">Je me disais cela aussi!</div></body></html>');
Le problème que tu as avec ta fonction onLoad() est double: son nom te fait la confondre avec la réaction du navigateur qui doit activer la fonction lorsqu'il charge la page. Ceci est un mineur et n'est qu'une question d'appellation de la fonction. Ce qui est plus grave et qui bloque ton système, c'est que la fonction onLoad que tu appelles n'existe pas. Il faudrait qu'elle soit dans ton code et j'en vois mal l'utilité puisque la fonction construisant la page peut très bien faire le travail sans faire appel à une autre fonction qui agirait de la même manière. Vois ci-haut, j'ai fait disparaître ton onload = onload

[/code]

par Sebe » 18 déc. 2007, 01:25

Je suis arrivé à un certain résultat (acceptable) mais j'aimerai limiter le nombre de page ... j'ai vu que l'on pouvait créer une popup tout dans le code JS ici et j'essaye en vain de la transposer dans mon code !
Voici mon code JS:

Code : Tout sélectionner

function onLoad() { if (GBrowserIsCompatible()) { map = new GMap2(document.getElementById("map")); map.addControl(new GLargeMapControl()); //var geoXml = new GGeoXml("http://www.runningho.be/jho/kml/Kainoise.kml"); var geoXml = new GGeoXml("http://www.runningho.be/jho/kml/acrho.php?parcours=21"); map.addOverlay(geoXml); map.setCenter(new GLatLng(50.66, 3.37), 13); } } function carte(fichier,winName){ newpage=open('',"newpopup","left=30,top=20,scrollbars=yes,resizable=yes"); newpage.document.write('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">'); newpage.document.write('<html><head><title>' + winName + '</title></head>'); newpage.document.write('<body onload="onLoad()"><div id="map" style="width:100%;height:100%;"></div></body></html>'); }
En fait, je pense que onload="onLoad()" ne se fait pas !

Peut-on m'aider ?

Merci

par Sebe » 16 déc. 2007, 09:49

Salut,
sans voir les changement effectués on ne peut pas dire grand chose :?
Ce sont des bricoles de mises en page ... rien à voir avec la fonction JS.

Merci

par naholyr » 16 déc. 2007, 01:22

Les fonctions js marchent exactement de la même manière que les fonction php.
Attention ce n'est pas tout à fait vrai : les paramètres des fonctions JS sont toujours facultatifs. Si on n'indique pas les paramètres à partir du Xème, la fonction reçoit simplement des valeurs de type undefined.
En l'occurrence tous les paramètres de window.open (et donc de open_Window, qui n'en est qu'un alias, et dont on peut se demander la raison d'exister...) sont facultatifs, sauf le premier il me semble.