Un JavaScript dans un document.write

Signaler
Messages postés
4
Date d'inscription
dimanche 22 octobre 2006
Statut
Membre
Dernière intervention
19 février 2007
-
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
-
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

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
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 />
Messages postés
4
Date d'inscription
dimanche 22 octobre 2006
Statut
Membre
Dernière intervention
19 février 2007

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)?
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
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 />
Messages postés
4
Date d'inscription
dimanche 22 octobre 2006
Statut
Membre
Dernière intervention
19 février 2007

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 !
Messages postés
4
Date d'inscription
dimanche 22 octobre 2006
Statut
Membre
Dernière intervention
19 février 2007

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.............
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
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 />
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
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)
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
tu as raison PetoleTeam,
    sauf que rien ne va le déclancher ce script...
<hr />                Cordialement             Bul         [mon Site]     [M'écrire]<hr />
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
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)