[JS] Souci d'inclusion de publicité JS dans fenêtre PopUp JS

Souci d'inclusion de publicité JS dans fenêtre PopUp JS [JS] - HTML/CSS - Programmation

Marsh Posté le 24-11-2009 à 13:44:16    

Bonjour à tous.
 
Je suis nouveau sur ce forum. J'ai parcouru beaucoup de sujets, et après plusieurs heures de réflexions et de tests, je ne trouve pas de réponse à mon souci.
Je n'aime pas trop solliciter de l'aide, je sais que c'est souvent casse pieds et que trop de questions "betes" sont posées... Enfin bon, pour ceux qui souhaiteraient m'aider je les remercie grandement !
 
 
Voici le souci.
En gros, je veux inclure une publicité google dans une fenêtre pop-up, qui s'affiche lorsqu'un utilisateur veut agrandir une photo.
Autrement dit, l'utilisateur appelle une fonction Javascript, qui elle même doit appeler un autre Javascript.
 
Voici ma fonction Javascript appellée par l'utilisateur (simplifiée) :

Code :
  1. <SCRIPT LANGUAGE="JavaScript">
  2. function PopupImage(img)
  3. {
  4. w=open("",'image','weigth=toolbar=no,scrollbars=no,resizable=yes, width=822, height=670');
  5. w.document.write("<HTML><BODY><IMG src='"+img+"'></BODY></HTML>" );
  6. w.document.close();
  7. }
  8. </SCRIPT>


 
Et un (faux) code fourni par google :

Code :
  1. <script type="text/javascript"><!--
  2. google_ad_client = "pub-xxxxxxxxxxxxxx";
  3. google_ad_slot = "xxxxxxxxxxxx";
  4. google_ad_width = 250;
  5. google_ad_height = 250;
  6. //-->
  7. </script>
  8. <script type="text/javascript"
  9. src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
  10. </script>


 
Je pensais que la solution était d'écrire :

Code :
  1. w.document.write("   #script google#   " );


 
Mais forcément, ca va pas au niveau des guillemets.
Donc j'ai pensé mettre des ( "' et '" ) en lieu et place des guillements du script google. Rien n'y fait, je ne m'en sors pas.
 
Comment faire pour afficher cette pub google dans la fenêtre appellée par l'utilisateur ?
Merci à vous.

Reply

Marsh Posté le 24-11-2009 à 13:44:16   

Reply

Marsh Posté le 24-11-2009 à 14:02:11    

il faut effectivement échapper tes guillemets, mais avec des \" et \', pas en les doublant.

 
Code :
  1. w.document.write("<script type=\"text/javascript\"><!--" );
  2. w.document.write("google_ad_client = \"pub-xxxxxxxxxxxxxx\";" );
  3. [...]


Message édité par pataluc le 24-11-2009 à 14:04:55
Reply

Marsh Posté le 24-11-2009 à 14:43:29    

Bonjour pataluc, et merçi pour ton aide.
Effectivement, il faut échapper les guillemets comme tu l'as indiqué.

 

J'ai essayé d'afficher une série de guillemets, ça fonctionne.
Par contre, afficher le Javascript reste malheureusement impossible.

 

En fait, lorsque j'écris :

Code :
  1. w.document.write("<script type=\"text/javascript\"" );
  2. w.document.write("</script>" );
 

dans le javascript général, à savoir :

Code :
  1. <SCRIPT LANGUAGE="JavaScript">
  2. function PopupImage(img)
  3. {
  4. w=open("",'image','weigth=toolbar=no,scrollbars=no,resizable=yes, width=822, height=670');
  5. w.document.write("<HTML><BODY><IMG src='"+img+"'></BODY></HTML>" );
  6. w.document.write("<script type=\"text/javascript\"" );
  7. w.document.write("</script>" );
  8. w.document.close();
  9. }
  10. </SCRIPT>
 

C'est le </script> qui est interprété en tant que fin du script principal, et qui ferme donc le <SCRIPT LANGUAGE="JavaScript">.
En conséquence, les instructions ne sont pas entièrement exécutées, et la page php affiche au format texte visible par tous :

Code :
  1. " ); w.document.write("" ); w.document.close(); }
 

Est-il possible de résoudre ce problème ? On peut sans doute passer par un include en php, mais ça me parrait "grossier".


Message édité par lx93 le 24-11-2009 à 14:46:28
Reply

Marsh Posté le 24-11-2009 à 14:56:22    

je vois deux solution, je ne sais pas laquelle est la meilleure...

 

soit tu échappes les < et > également:

Code :
  1. w.document.write("&lt;script type=\"text/javascript\"&gt;" );
  2. w.document.write("&lt;/script&gt;" );
 

soit tu mets des balises CDATA pour bien lui dire que ce n'est plus du html:

Code :
  1. <script type="text/javascript">
  2. <![CDATA[
  3. w.document.write("<script type=\"text/javascript\"" );
  4. w.document.write("</script>" );
  5. ]]>
  6. </script>
 

les 2 devraient marcher je pense, je ne sais pas ce qui est le mieux...

 


Edit: ah non les CDATA n'ont pas l'air de marcher... reste la première solution...


Message édité par pataluc le 24-11-2009 à 15:00:12
Reply

Marsh Posté le 24-11-2009 à 15:13:22    

Encore merci pataluc pour ton aide. Ca y est, j'ai réussi à ne pas faire bugger la fenêtre PopUp.
Il ne reste qu'un problème : la fenêtre affiche juste le code source du javascript, mais ne l'exécute pas.
 
w.doucument.write est-il une mauvaise commande pour exécuter un javascript ?

Reply

Marsh Posté le 24-11-2009 à 15:19:14    

ca doit venir du fait que tu ferme les balises body et html avant de mettre le script...

 

sinon, pourquoi ne mets tu pas tout simplement ce code dans une autre page, que tu appelleras avec l'url qui va bien?


Message édité par pataluc le 24-11-2009 à 15:19:20
Reply

Marsh Posté le 24-11-2009 à 15:27:49    

Exact, je pensais à cette méthode. Plus facile mais un peu "tordue".
J'aime bien comprendre en détail chaque petite chose, surtout pour mes sites.
 
En tous cas, merci pour ton aide. Je devrais pouvoir terminer tout seul. ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed