Fen être pop-up problème de fonctionnement

Bonjour,

J’ai un problème de fonctionnement avec l’ouverture d’images en pop-up
J’ai une rubrique 5 qui doit me servir de lieu d’exposition.
J’affiche un logo par document image attaché aux articles de cette rubrique(çà marche), et un clic sur ce logo ouvre le document dans une fenêtre Pop-up (C’est çà qui ne marche pas, il y a bien un lien sur le logo mais au clic rien ne se passe!)

  • Le lien sur ma page (c’est pas beau, c’est juste une maquette)
    http://moncartable.free.fr/rubrique.php3?id_rubrique=5
    (C’est les deux icones du haut sans légende qui sont concernés)

  • Ci-dessus le code de la fonction (1) et de son appel (2)
    (1) - La fonction Popup ( récupérée dans les archives de la liste et écrite par par Cyril Marion)

#NOM_SITE_SPIP

(2) - La boucle ou j’appelle la fonction pop-up

<BOUCLE_articles(ARTICLES){id_rubrique}{par date}{inverse}>
<B_portfolio>
<BOUCLE_portfolio(DOCUMENTS){id_article}{par titre}{mode=document}{doublons}{par date}{inverse}>

#LOGO_DOCUMENT [

(#TITRE)

] [
(#DESCRIPTIF)]

Bonjour,

Quand on charge votre page on a une erreur java script (ligne 10 caractère 92)

en lisant le source il semble que l’erreur vient de sauts de ligne; essayez en mettant toute la commande depuis « var contenu… » jusqu’à « …height= »+hauteur+« ); » sur la même ligne sans sauts de ligne;
le problème vient que le script est copié, et recopié et que certains logiciels de messagerie coupent les messages (rajoutent des sauts de ligne)

Tenez-nous informés…

A+
Cyril

-----Message d’origine-----
De : spip-bounces@rezo.net [mailto:spip-bounces@rezo.net]De la part de Martine Chevalier
Envoyé : jeudi 28 novembre 2002 14:13
À : spip
Objet : [Spip] Fen être pop-up problème defonctionnement

Bonjour,

J’ai un problème de fonctionnement avec l’ouverture d’images en pop-up
J’ai une rubrique 5 qui doit me servir de lieu d’exposition.
J’affiche un logo par document image attaché aux articles de cette rubrique(çà marche), et un clic sur ce logo ouvre le document dans une fenêtre Pop-up (C’est çà qui ne marche pas, il y a bien un lien sur le logo mais au clic rien ne se passe!)

  • Le lien sur ma page (c’est pas beau, c’est juste une maquette)
    Ecole Fauriel2
    (C’est les deux icones du haut sans légende qui sont concernés)

  • Ci-dessus le code de la fonction (1) et de son appel (2)
    (1) - La fonction Popup ( récupérée dans les archives de la liste et écrite par par Cyril Marion)

#NOM_SITE_SPIP

(2) - La boucle ou j’appelle la fonction pop-up

<BOUCLE_articles(ARTICLES){id_rubrique}{par date}{inverse}>
<B_portfolio>
<BOUCLE_portfolio(DOCUMENTS){id_article}{par titre}{mode=document}{doublons}{par date}{inverse}>

#LOGO_DOCUMENT [

(#TITRE)

] [
(#DESCRIPTIF)]

Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.422 / Virus Database: 237 - Release Date: 20/11/2002


Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.422 / Virus Database: 237 - Release Date: 20/11/2002

en lisant le source il semble que l'erreur vient de sauts de ligne;

essayez en mettant toute la commande depuis "var contenu..." >jusqu'à
"...height="+hauteur+");" sur la même ligne sans sauts de ligne;

le problème vient que le script est copié, et recopié et que certains

logiciels de messagerie coupent les messages (rajoutent des >sauts de
ligne)

+hauteur+");
...
l'erreur est là et elle est flagrante... finir sur des guillemets
ouverts.. ca craint des bulles...
si tu pouvais reposer ton code complet de la fonction javascript ca
serait sympa.

En fait c'est assez simple à débuguer : ce qu'il y a dans la variable
contenu c'est le code html de la petit fenêtre qui s'ouvre en popup. Donc ça
doit commencer par <html> et finir par </html>. Le plus simple est de
refaire cette petite page dans Dream comme on veut, couleur du fond, liens,
etc, puis d'enlever tous les sauts de ligne, et enfin remplacer tous les
double quote par des simple quote.

Ensuite on copie tout ce code et on le place dans la variable contenu entre
des double quote avec un point virgule à la fin :

var contenu = "<le code de votre page html, sans sauts de ligne ni double
quote>"; <-- ne pas oublier le ";" à la fin de la ligne

Cette astuce peut être utilisée pour incorporer autre chose que des images
dans le popup par exemple de l'avi ou du mov (à tester); reste ensuite à
récupérer les infos de taille dans une boucle SPIP et à les passer en
paramètre.

A+
Cyril

-----Message d'origine-----
De : spip-bounces@rezo.net [mailto:spip-bounces@rezo.net]De la part de
Nathan
Envoyé : jeudi 28 novembre 2002 15:27
À : 'spip'
Objet : RE : [Spip] Fen être pop-up problème defonctionnement

>en lisant le source il semble que l'erreur vient de sauts de ligne;
essayez en mettant toute la commande depuis "var contenu..." >jusqu'à
"...height="+hauteur+");" sur la même ligne sans sauts de ligne;
>le problème vient que le script est copié, et recopié et que certains
logiciels de messagerie coupent les messages (rajoutent des >sauts de
ligne)

+hauteur+");
...
l'erreur est là et elle est flagrante... finir sur des guillemets
ouverts.. ca craint des bulles...
si tu pouvais reposer ton code complet de la fonction javascript ca
serait sympa.

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.uzine.net/spip

---

Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.422 / Virus Database: 237 - Release Date: 20/11/2002

---

Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.422 / Virus Database: 237 - Release Date: 20/11/2002

var contenu = "<le code de votre page html, sans sauts de ligne ni
double
quote>"; <-- ne pas oublier le ";" à la fin de la ligne

...
Le problème n'est pas du tout là... le problème est dans la var suivante
:

var
fenetre=open("","","title="+title+",resizable=no,width="+largeur+",heigh
t="+hauteur+");

Celà fini sur des guillemets ouverts... donc pas terrible...
Il faut remplacer cette ligne par :

var
fenetre=open("","","title="+title+",resizable=no,width="+largeur+",heigh
t="+hauteur);

et là ca devrait marcher je pense.

Salut,

...
Le problème n'est pas du tout là... le problème est dans la
var suivante
:

var
fenetre=open("","","title="+title+",resizable=no,width="+large
ur+",heigh
t="+hauteur+");

Celà fini sur des guillemets ouverts... donc pas terrible...
Il faut remplacer cette ligne par :

var
fenetre=open("","","title="+title+",resizable=no,width="+large
ur+",heigh
t="+hauteur);

et là ca devrait marcher je pense.

non, il faut 2 fois le double quote pour finir la ligne fenetre=open;
syntaxe correcte :

var fenetre=open("","","title="+titre+",resizable=no,width="+largeur+",
height="+hauteur+"");

Explications :
open s'ouvre avec 3 paramètres, chacun contenu entre des double quote. Celui
qui pose problème c'est le 3ème; les variables de ce 3è paramètre c'est :

titre, largeur, hauteur

Si ce n'était pas des variables on écrirait :

var fenetre=open("","","title=Cartable,resizable=no,width=400,height=200");

mais comme ce sont des variables il faut utiliser le double quote pour
fermer la chaîne et le signe de concaténation + pour lier la variable à la
chaîne; à la fin in faut fermer une 2è fois; cela donne :

var fenetre=open("","","title="+titre+",resizable=no,width="+largeur+",
height="+hauteur+"");

En espérant que cela serve...
A+
Cyril

---

Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.422 / Virus Database: 237 - Release Date: 20/11/2002

> Il faut remplacer cette ligne par :
>
> var
> fenetre=open("","","title="+title+",resizable=no,width="+large
> ur+",height="+hauteur);
>
> et là ca devrait marcher je pense.

non, il faut 2 fois le double quote pour finir la ligne fenetre=open;

tu as testé ce que j'ai proposé ?
Je suis ingénieur informatique et j'ai un solide bagage en
développement, javascript je connais la grammaire, ma solution marche
aussi bien que ce que tu proposes, à savoir :

var

fenetre=open("","","title="+titre+",resizable=no,width="+largeur+",
height="+hauteur+"");

Pour la bonne est simple raison que gramaticalement parlant c'est la
même chose. Si tu écrit tout un texte et que tu lui dit que tu veux une
chaine vide après, c'est pareil que d'écrire tout un texte sans lui dire
que tu veux une chaine vide apres.

Pas besoin de vaines explications, passons à la pratique, fait un
nouveau fichier html genre : javascript.htm quelque part sur ton dur.

Et met :

<html>
<head>
<title>Test syntaxe javascript</title>
<script language="javascript">
<!--
function popup1(title,largeur,hauteur)
{
  var contenu =
"<html><head><title>"+title+"</title></head><body><div
align='center'>Test qui marche</div></body></html>";
  var fenetre =
window.open("","_blank","title="+title+",resizable=no,width="+largeur+",
height="+hauteur);
  fenetre.document.write(contenu);
}
function popup2(title,largeur,hauteur)
{
  var contenu =
"<html><head><title>"+title+"</title></head><body><div
align='center'>Test qui marche</div></body></html>";
  var fenetre =
window.open("","_blank","title="+title+",resizable=no,width="+largeur+",
height="+hauteur+"");
  fenetre.document.write(contenu);
}
//-->
</script>
</head>
<body>
<a href="javascript:popup1('test',300,300);">popup &agrave;
Nathan</a><br>
<a href="javascript:popup2('test',300,300);">popup &agrave; Cyril</a>
</body>
</html>

Teste et tu verras que j'avais raison.

Nathan