Est-ce quelqu’un a déjà rencontré des problèmes
de conflit entre un javascript et spip ?
Je viens de mettre en ligne ma nouvelle page d’accueil et j’ai dû enlever toutes mes boucles pour que mon script fonctionne (il fonctionne avec des calques et une feuille de style). Même mon .swf n’apparaissait pas.
Merci d’avance pour vos réponses.
En attendant, bonne nuit.
Donatien
www.lavigie.net
Je n'ai jamais pu faire fonctionner un javascript dans une boucle.
Hors d'une boucle, rien de spécial, comme un htlm statique.
Et si quelqu'un a un truc, je suis preneuse !
____________________________________________________
At 19:19 08/01/2002 -0500, Donassien@aol.com wrote:
Est-ce quelqu'un a déjà rencontré des problèmes
de conflit entre un javascript et spip ?
Je viens de mettre en ligne ma nouvelle page d'accueil et j'ai dû enlever toutes mes boucles pour que mon script fonctionne (il fonctionne avec des calques et une feuille de style). Même mon .swf n'apparaissait pas.
Merci d'avance pour vos réponses.
En attendant, bonne nuit.
Donatien
www.lavigie.net
----------
Perline (mailto:perline@lipietz.net)
Attachée parlementaire
d'Alain Lipietz (député européen, France, Les Verts)
Directrice de cybercampagne et webmaitresse du site de
l'ex-Candidat des Verts à l'élection présidentielle de 2002
http://lipietz2002.net/
-------------------------------------------------------------------------
Hello,
Je n'ai jamais pu faire fonctionner un javascript dans une boucle.
Etant donné que les boucles sont traitées côté serveur, et le
javascript côté client, c'est tout simplement que tes boucles
"pondent" du mauvais javascript.
Voici un exemple de ce que je fais de ce style pour phpHeaven, et qui
marche très bien :
Un script 'backend_html_fr.php3' :
----------------------------------------------------------------
<?php
$fond = 'skel/backend_html_fr';
$delais = 3600;
// cette ligne empeche l'affichage des boutons d'administration
$flag_preserver = true;
include 'inc-public.php3';
?>
----------------------------------------------------------------
Dans le répertoire 'skel', mon squelette 'backend_html_fr.html' :
----------------------------------------------------------------
document.write('<table border="0" cellpadding="1" cellspacing="0">');
<BOUCLE1(articles){id_secteur=1}{tout}{par date}{inverse}{0,10}>
document.write('<tr><td align="right">[(#DATE|jour|chiffrespar2)]-[(#DATE|mois)]-[(#DATE|annee)] :</td><td><a href="#URL_SITE_SPIP/#URL_ARTICLE">[(#TITRE|addslashes)]</a></td></tr>');
</BOUCLE1>
document.write('</table>');
----------------------------------------------------------------
Et maintenant, dans n'importe quelle page, je peux mettre :
<script src="http://articles.phpheaven.net/backend_html_fr.php3"></script>
Et ça marche ... ![]()
Nicolas.
--
Nicolas "Brush" HOIZEY
Free PHP projects http://www.phpheaven.net
Veille tous azimuts http://www.gasteroprod.com
Clever Age http://www.clever-age.com
At 15:24 09/01/2002 +0100, Nicolas Hoizey wrote:
Etant donné que les boucles sont traitées côté serveur, et le
javascript côté client, c'est tout simplement que tes boucles
"pondent" du mauvais javascript.
Quand le javascript est indépendant des boucles, ok.
Mais quand c'est dans une boucle, je n'y arrive pas.
Même si normalement le javascript n'intervient qu'une fois les paramètres de la boucle en clair.
Je ne comprends certes pas, mais n'empêche que ça marche pas .
Bouhhh <:-)))
Pourtant j'en avais un bien joli-pratique....
At 0:06 +0100 11/01/02, Perline wrote:
Quand le javascript est indépendant des boucles, ok.
Mais quand c'est dans une boucle, je n'y arrive pas.
Même si normalement le javascript n'intervient qu'une fois les paramètres de la boucle en clair.
Je ne comprends certes pas, mais n'empêche que ça marche pas .
Bouhhh <:-)))Pourtant j'en avais un bien joli-pratique....
Si tu veux nous le montrer, on pourra peut-être t'aider sur un cas pratique.
On peut très bien placer du javascript à l'intérieur d'une boucle. Il n'y a pas de raison qui l'interdise. En revanche, il faut être beaucoup plus précis et vigilant dans sa programmation du javascript. (Par exemple, sur uZine, les pages d'articles contenant des forums affichent pendant le chargement une petite barre de progression du chargement - pas visible sous MSIE, mais visible avec Netscape et Mozilla par exemple; cette barre est modifiée par un petit javascript placé dans la boucle des forums.)
Notamment:
- éviter les définitions de fonctions à l'intérieur d'une boucle; sinon, on risque de définir plusieurs fois la même fonction si la boucle offre plusieurs résultats;
- certains noms de variables peuvent subir le même sort; par exemple, on veut programmer une gestion du survol d'un élément, avec par exemple un <div name="montruc">. Si ce "montruc" est dans la boucle, évidemment il y aura autant de "montruc" différents que de résultats à la boucle; donc un javascript ne pourra pas le gérer. Dans ce cas, une solution consiste à compléter le nom de "montruc", par exemple dans une boucle (ARTICLES): <div name="montruc#ID_ARTICLE"> (ainsi on obtient successivement un "montruc1", "montruc23", etc;
- éviter de faire dépendre les fonctions javascript d'une boucle d'éléments d'une autre boucle, car une boucle peut être vide.
Dit autrement: pour intégrer du javascript à l'intérieur des boucles, il est très vivement conseillé de bien comprendre le fonctionnement de javascript. Si on procède par un simple copier-coller de bouts de code sans trop piger comment ils fonctionnent, il y a de grosses chances que le code généré ne fonctionne pas.
Amicalement,
ARNO*
--
Le Scarabée : http://www.scarabee.com
uZine 2 : http://www.uzine.net
DH/DSS, 0x11930F0B, DEEB 602D B344 644B AF88 BF73 85F4 2297 1193 0F0B