Un JavaScript dans un document.write

fika2 Messages postés 4 Date d'inscription dimanche 22 octobre 2006 Statut Membre Dernière intervention 19 février 2007 - 19 févr. 2007 à 13:47
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 - 20 févr. 2007 à 23:21
Bonjour à tous!

Je vous soumets mon souci :

J'essaie de créer une fonction qui, quand je lui envoie le n° de mon
swf à afficher, écrit le code (en javascript) pour l'afficher.

Mais je dois me planter dans les guillemets ou un autre élément de syntaxe, car le navigateur interprète le </script> contenu dans le document.write !

Voici ma fonction, pouvez-vous m'aider?

Merci beaucoup d'avance!

<!-- BBCode Start --><table bgcolor="#e6effe" border="0" cellpadding="5" cellspacing="0" width="100%">----, <tt>function ChangeSwf(number)

{

document.write (\"<script
type=\\"text/javascript\\">AC_FL_RunContent(
'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0','width','524','height','382','src','swfcss/z_im.swf?chemin=zooms/\"+number+\"','quality','high','bgcolor','#000622','pluginspage','http://www.macromedia.com/go/getflashplayer','movie','swfcss/z_im.swf?chemin=zooms/\"+number+\"'
); </script>\");

}</tt></td>
</td></tr></tbody></table><!-- BBCode End -->

9 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
19 févr. 2007 à 14:11
Bonjour,

    1°   déjà, il manque probablement une '
         
...chemin='zooms/"+number+"'...
    2°      ne fonctionnera pas avec tous les navigateurs,
             pour certains, doit être associé.
    3°   document.write ???
          si le page a été totalement affichée/interprétée, ce qui
             semble être le cas ici ( c'est une fonction, appelée sur une action )
             document.write efface toute la page... y compris le javascript.
             ( click droit + afficher sources : il ne reste que script du write )

    attention quand on poste, tout ici est quasi sur une seule ligne
       et c'est donc assez indigeste, voire illisible.



<hr />                Cordialement          Bul         [mon Site]     [M'écrire]<hr />
0
fika2 Messages postés 4 Date d'inscription dimanche 22 octobre 2006 Statut Membre Dernière intervention 19 février 2007
19 févr. 2007 à 14:30
Argh. Merci quand même !
Sais-tu comment je peux faire alors?
Sur une seule page, j'ai 60 vignettes, et lorsque je clique sur l'une d'elles, un SWF s'affiche.
J'ai déjà un JavaScript qui dit : quand je clique sur la vignette 2 par exemple, j'affiche le calque 2. Bon.
Mais je dois répéter 60 fois le code du SWF, qui est assez long.
Comment écrire une fonction javascript qui "contient" ce code, pour qu'ensuite je n'ai plus qu'à répeter 60 fois :
function Inserer_Swf(n° de mon SWF)?
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
19 févr. 2007 à 15:12
il y a des exemples sur CodesSources ( une petite recherche )

en gros, met "en dur" ( dans le htm ) les balises <object> et
    et modifie le .src ( ou autre ) des balises.

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]<hr />
0
fika2 Messages postés 4 Date d'inscription dimanche 22 octobre 2006 Statut Membre Dernière intervention 19 février 2007
19 févr. 2007 à 15:45
Alors j'ai trouvé un truc qui a l'air bien sur CodesSources, j'ai complètement changé mon code et là je ne vois vraiment pas ce qui cloche!!!!
Saurais-tu me dire ce qui ne va pas?
Maintenant j'ai ça dans mon <head> :
<script language="JavaScript" type="text/JavaScript">
 function change_swf(file_name)
 {
 var line="<sc"+"ript> type="text/javascript">AC_FL_RunContent( 'codebase',
'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0',
'width','524','height','382','src','swfcss/z_im.swf?chemin=zooms/'"+file_name+"','quality','high',
'bgcolor','#000622','pluginspage','http://www.macromedia.com/go/getflashplayer',
'movie','swfcss/z_im.swf?chemin=zooms/'"+file_name+"' ); </sc"+"ript>";
 document.getElementById("contenu").innerHTML = line;
 }
 </script>

(Ca ne marche pas que je coupe ou non le mot <script>)

Dans mon pour appeler la fonction :
[javascript:change_swf('012'); Lien]


Et l'endroit où le swf est censé se mettre :



Je mettrai un classique pour les <noscript>

MERCI BEAUCOUP !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fika2 Messages postés 4 Date d'inscription dimanche 22 octobre 2006 Statut Membre Dernière intervention 19 février 2007
19 févr. 2007 à 15:58
Argh, décidemment, mon code n'est encore pas super lisible.
Le revoilà en + agréable à lire :
Daéns le <head> :
<!-- BBCode Start --><table bgcolor="#e6effe" border="0" cellpadding="5" cellspacing="0" width="100%">----, <script language=\"JavaScript\" type=\"text/JavaScript\">
 function change_swf(file_name)
 {
 var line=\"<sc\"+\"ript> type=\\"text/javascript\\">AC_FL_RunContent( 'codebase',
'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0',
'width','524','height','382','src','swfcss/z_im.swf?chemin=zooms/'\"+file_name+\"','quality',
'high','bgcolor','#000622','pluginspage','http://www.macromedia.com/go/getflashplayer',
'movie','swfcss/z_im.swf?chemin=zooms/'\"+file_name+\"' ); </sc\"+\"ript>\";
 document.getElementById(\"contenu\").innerHTML = line;
 }
 </script></td>
</td></tr></tbody></table><!-- BBCode End -->(Ca ne marche pas que je coupe ou non le mot <script>)

Dans mon pour appeler la fonction :
[javascript:change_swf('012'); Lien]

Et l'endroit où le swf est censé se mettre :

Je mettrai un classique pour les <noscript>

Merci.............
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
20 févr. 2007 à 06:01
là, on met un script dans un div.
rien n'appelle ce script, il ne se déroule donc pas.

on n'a pas la fonction
AC_FL_RunContent



je te proposais de mettre les balises nécessaires en html
et de ne modifier que le paramètre
( sans parler d'embed... )

<object    classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
            id="obj"
            name="obj"
            codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="100" height="100">
                   
                   
</object>

<script type="text/javascript">
    document.getElementById("obj").movie="le fichier swf que l'on veut";
</script>



<hr />                        Cordialement             Bul         [mon Site]     [M'écrire]<hr />
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
20 févr. 2007 à 06:05
B
onjour...
Pour continuer avec cette méthode il te faut écrire plus lisiblement pour pouvoir limiter les erreurs...

exemple :
  var Html = "";
  Html += "Le début du Texte";
  Html += "Le milieu du Texe";
  Html += "La fin du Texte";

ou encore
  var Html = "";
  vr Html = "Le début du Texte";
            + "Le milieu du Texe";
            + "La fin du Texte";
tu places un alert( Html) pour vérifier si le contenu correspond à ton attente...

Dans ton cas tu peut remplacer le < par des &lt; ce qui affichera dans ton div le résultat complet
si cela convient tu remet les < à laplace des &lt;
n'hésite pas non plus à placer des espaces après les virgules pour plus de lisibilité.

Il me semble avoir noter plusieures erreurs avec les < et les quotes

une version peut être celle ci
 var line  ="&lt;sc" +"ript type="text/javascript">"
 + " AC_FL_RunContent( 'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version = 7, 0, 19, 0'"
 + ", 'width', '524', 'height', '382', 'src', 'swfcss/z_im.swf?chemin=zooms/" +file_name
 + "', 'quality', 'high', 'bgcolor', '#000622', 'pluginspage', 'http://www.macromedia.com/go/getflashplayer'"
 + ", 'movie', 'swfcss/z_im.swf?chemin=zooms/" +file_name +"' ); &lt;/sc" +"ript>";
 alert(line);
 document.getElementById("contenu").innerHTML = line;

;0)
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
20 févr. 2007 à 06:58
tu as raison PetoleTeam,
    sauf que rien ne va le déclancher ce script...
<hr />                Cordialement             Bul         [mon Site]     [M'écrire]<hr />
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
20 févr. 2007 à 23:21
B
onsoir The Bultez...et



fika2







En prenant la plume ce matin ce n'est pas tant pour résoudre le problème mais pour amener un peu de clareté dans la façon de procéder.
Encore beaucoup d'erreurs proviennent de la synthaxe.
Ceci dit il est tout à fait vrai que si la fonction est dans le document mais qu'elle n'est pas appellée alors, peau de bernique...
La modification de la propriété movie de l'OBJECT en dynamique est tout à fait satisfaisante il n'y a aucun doute.
En relisant les posts je ne suis d'ailleur pas sur d'avoir bien saisi le but ultime de fika2

;0)
0
Rejoignez-nous