<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog Modulaweb &#187; javascript</title>
	<atom:link href="http://www.modulaweb.fr/blog/tags/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.modulaweb.fr/blog</link>
	<description>Le blog des technologies modulables orientées web</description>
	<lastBuildDate>Thu, 16 Dec 2010 03:02:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Flash™ non intrusif</title>
		<link>http://www.modulaweb.fr/blog/2009/04/flash-non-intrusif/</link>
		<comments>http://www.modulaweb.fr/blog/2009/04/flash-non-intrusif/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 23:05:41 +0000</pubDate>
		<dc:creator>Jean-François VIAL</dc:creator>
				<category><![CDATA[Discussions]]></category>
		<category><![CDATA[accessibilité]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.modulaweb.fr/blog/?p=99</guid>
		<description><![CDATA[Flash™, créé par Macromedia™ en 1996, aujourd'hui maintenu par Adobe™, est une technologie permettant d'ajouter à une page web une application interactive pouvant inclure des graphismes 2D et textes vectoriels animés, des vidéos en streaming… Des animations Flash™ sont aujourd'hui visibles partout sur internet. Cette technologie apporte beaucoup, sur le plan esthétique comme en interactivité, [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-139" href="http://www.modulaweb.fr/blog/2009/04/flash-non-intrusif/flash/"><img class="alignleft size-full wp-image-139" title="flash" src="http://www.modulaweb.fr/blog/wp-content/uploads/2009/04/flash.png" alt="flash" width="128" height="128" /></a>Flash™, créé par Macromedia™ en 1996, aujourd'hui maintenu par Adobe™, est une technologie permettant d'ajouter à une page web une application interactive pouvant inclure des graphismes 2D et textes vectoriels animés, des vidéos en streaming… Des animations Flash™ sont aujourd'hui visibles partout sur internet. Cette technologie apporte beaucoup, sur le plan esthétique comme en interactivité, mais apporte aussi beaucoup de problèmes d'accessibilité… sauf si on s'y prend bien.</p>
<p><span id="more-99"></span></p>
<p>Voici quelques conseils :</p>
<h2>Règles à suivre</h2>
<p>En suivant quelques règles tenant du bon sens, on arrive à mettre en place des embellissements utilisant Flash™, de manière à garder une bonne accessibilité, et, surtout, sans pénaliser celles et ceux qui n'ont pas le fameux plugin permettant de voir ces animations.</p>
<h3>1. Faire comme si Flash™ n'existait pas</h3>
<p>Dans un premier temps, on va créer le design, les contenus et fonctionnalités, en faisant comme si Flash™ n'existait tout simplement pas. Les règles CSS sont souvent très suffisantes pour créer certains effets, et javascript permet, à moindre efforts, et à condition de l'employer de manière non intrusive, de créer un certain nombre d'effets que même Flash™ ne permettrait pas de faire. Les frameworks tels que <a href="http://prototypejs.org">Prototype</a> et <a href="http://script.aculo.us">Scriptaculous</a>, par exemple, permettent pléthore d'effets et autres interactions, je vous les conseille chaudement.</p>
<p>Agir ainsi, en préparant, d'abord, un environnement pleinement fonctionnel sans utiliser Flash™ est un préalable indispensable pour permettre une bonne accessibilité : si le client possède le bon plugin, les animations Flash™ viendront se substituer à certains contenus, dans le cas contraire, la navigation n'en souffrira pas.</p>
<p>Une fois que le contenu est présent, que le design joue son rôle et que javascript viens prêter main forte, on passe à la suite :</p>
<h3>2. Identifier les contenus et fonctions «flashables»</h3>
<p>On ne va pas tout placer sous Flash™, évidement : seules quelques parties, finement choisies, seront remplacées par du contenu Flash™ en fonction des critères suivants :</p>
<ol>
<li>Les CSS ne peuvent créer les mêmes effets esthétiques souhaités</li>
<li>Le javascript, lui non plus, ne peut aider à atteindre ces objectifs esthétiques</li>
<li>Si flash n'apporte pas un «plus» esthétique, il apporte au contenu un «plus» dans la navigation et l'interactivité.</li>
</ol>
<p>Une fois ces contenus identifiés, on modifiera le code (X)HTML de manière à identifier le conteneur de ces contenus :</p>
<pre>&nbsp;
&lt;div&gt;Ce texte sera remplacé par une animation Flash™&lt;/div&gt;
&nbsp;</pre>
<p>sera modifié en</p>
<pre>&nbsp;
&lt;div id=&quot;texte_flash&quot;&gt;Ce texte sera remplacé par une animation Flash™&lt;/div&gt;
&nbsp;</pre>
<p>et les feuilles de style seront adaptées en fonction, afin de ne pas être perturbées par l'ajout des &lt;div>.</p>
<p>L'étape suivante sera, bien évidement, de créer les animations Flash™ à proprement parler, mais nous n'en parlerons pas ici.</p>
<h3>3. «Flasher» le contenu</h3>
<p>Vos animations sont prêtes, il ne reste plus qu'à les mettre en place. Pour ce faire, on peut soit utiliser une fonction javascript de notre fabrication, soit utiliser ce qui existe déjà : le script <a href="http://code.google.com/p/swfobject/">SWFObject</a>.</p>
<p><a href="http://code.google.com/p/swfobject/">SWFObject</a>, écrit par Geoff Stearns, Michael Williams, et Bobby van der Sluis, est, pour moi, le meilleur moyen d'inclure du Flash™ dans une page web. Ce script open-source (sous licence MIT) vous permet d'inclure dans vos pages web des animations Flash™ en les plaçant dans des conteneurs (&lt;div> par exemple). Pour l'utiliser, téléchargez le .zip depuis le site officiel, et placez le fichier .js dans un dossier et liez-le à votre page web via une balise &lt;script> comme suit. En suite, rien de plus simple ! reprenons notre exemple de tout à l'heure :</p>
<pre>&nbsp;
&lt;div id=&quot;texte_flash&quot;&gt;Ce texte sera remplacé par une animation Flash™&lt;/div&gt;
&nbsp;</pre>
<p>Notre animation Flash™ (nommée "animation.swf") ayant 300 pixels de large et 120 de haut et requérant la version 5 minimum du plugin Flash™, viendra se loger dans le conteneur nommé "texte_flash", et nous allons utiliser SWFObject comme suit pour ce faire :</p>
<pre>&lt;script type=&quot;text/javascript&quot;&gt;
  var anim = new swfobject.embedSWF(&quot;animation.swf&quot;, &quot;texte_flash&quot;, &quot;300&quot;, &quot;120&quot;, &quot;5.0.0&quot;);
&lt;/script&gt;</pre>
<p>Pour de plus amples informations, reportez-vous à la page suivante (en anglais) : <a href="http://code.google.com/p/swfobject/wiki/documentation">http://code.google.com/p/swfobject/wiki/documentation</a></p>
<p>Ainsi, notre animation remplacera le contenu de la
<div> nommée "texte_flash" si javascript est activé sur le navigateur du visiteur, et s'il a un plugin Flash™ capable d'afficher l'animation. S'il n'a ni l'un, ni l'autre, aucun souci : le site reste fonctionnel et parfaitement accessible.</p>
<h3>4. Maintenance</h3>
<p>Il conviendra, évidement, à chaque changement du contenu «non-Flash™», de modifier le contenu de l'animation. Il est donc fortement recommandé de faire en sorte que l'animation récupère le contenu à afficher de manière dynamique (via javascript par exemple) afin que les contenus avec et sans Flash™ restent identiques, sans pour autant avoir besoin de mettre à jour à la fois le contenu et les animations.</p>
<h2>Un mot sur l'<em>intrusivité</em></h2>
<p>N'afficher un contenu Flash™ que lorsque celà est nécessaire, c'est bien, mais faire en sorte que l'utilisateur ne soit pas gêné par ces contenus, d'une quelconque manière, c'est mieux.</p>
<p>Certains «webmasters» trouvent intéressent d'ajouter à leurs animations Flash™ une bande son. Dans l'absolu, rien de bien méchant, cependant, ces bandes son sont, bien souvent, imposées au visiteur. Certes, la musique ajoute un peit quelquechose à l'ambiance du site, cependant, le visiteur écoute déjà peut être de la musique… ou peut être qu'il n'aime pas cette musique imposée, peut etre encore qu'il a le son réglé au maximum sans le savoir, peut être encore qu'il est au bureau… et voilà que, sans prévenir, sans son accord, sans qu'il en ait été prévenu au préalable, sans qu'il ai pu dire si, oui ou non, il désirait cette musique, voilà que des sons jaillissent de ses haut-parleurs ou de ses écouteurs. Quelle intrusivité, quel irrespect pour le visiteur que de lui imposer celà. «Comment faire ?» demanderont certains… simplement en prévenant l'utilisateur par un message, lors du pré-chargement par exemple : «Nous vous proposons une ambiance musicale pour accompagner votre navigation : cliquez-ici pour désactiver l'ambiance musicale» est-ce si compliqué ?</p>
<p>Pour en finir avec la musique et les sons sous Flash™ : quitte à mettre en place un fond sonore, autant que ce fond soit de qualité ! par pitié, utilisez un échantillonage de 128kbps minimum ! et en stéréo ! par pitié ! Nul doute que vous ne mettriez pas en ligne des photos pixélisées, alors pourquoi faire de même pour la musique ? d'autant qu'une musique de mauvaise qualité offre de vous une image d'amateurisme certain…</p>
<h2>Conclusion</h2>
<p>Il existe bien des manières d'inclure du Flash™ dans une page web, celle proposée ici en est une, à mon très humble avis, des plus simple et des moins intrusive. Il conviendra de vous documenter plus avant sur Flash™ et les moyens de mettre vos contenus «flashés» à jour lors des modifications sur le contenu classique, mais, avant de céder à la tentation, d'utiliser au maximum les possibilités des CSS et de javascript. Et si Flash™ se révèle incontournable dans votre projet, gardez à l'esprit qu'au moins votre animation sera intrusive, au plus les visiteurs l'apprécieront.</p></div>
<h4 class='related-posts-header'>Articles apparentés</h4><ul class="related-posts-list"><li class="related-post"><a href="http://www.modulaweb.fr/blog/2009/03/internet-explorer-8-enfin-un-produit-microsoft-qui-respecte-les-standards/">Internet Explorer™ 8 : enfin un produit Microsoft™ qui respecte les standards</a> </li><li class="related-post"><a href="http://www.modulaweb.fr/blog/2009/02/forcer-l-evaluation-du-code-dans-un-contexte-global-en-javascript/">Forcer l'évaluation du code dans un contexte global en javascript</a> </li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.modulaweb.fr/blog/2009/04/flash-non-intrusif/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Internet Explorer™ 8 : enfin un produit Microsoft™ qui respecte les standards</title>
		<link>http://www.modulaweb.fr/blog/2009/03/internet-explorer-8-enfin-un-produit-microsoft-qui-respecte-les-standards/</link>
		<comments>http://www.modulaweb.fr/blog/2009/03/internet-explorer-8-enfin-un-produit-microsoft-qui-respecte-les-standards/#comments</comments>
		<pubDate>Tue, 24 Mar 2009 18:53:57 +0000</pubDate>
		<dc:creator>Jean-François VIAL</dc:creator>
				<category><![CDATA[Discussions]]></category>
		<category><![CDATA[dom]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[png]]></category>
		<category><![CDATA[standards]]></category>

		<guid isPermaLink="false">http://blog.modulaweb.fr/?p=90</guid>
		<description><![CDATA[J'en ai la larme à l'œil : enfin, depuis 10 ans qu'on attendait ça, un produit Microsoft™ respecte (en très grande partie du moins) les standards du web. Jusqu'ici, Internet Explorer™ était un cauchemar pour l'intégration : chaque version ayant ses propres bugs, et ayant pas moins de 3 versions boguées sur le marché, chaque [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-161" href="http://www.modulaweb.fr/blog/2009/03/internet-explorer-8-enfin-un-produit-microsoft-qui-respecte-les-standards/web-browser/"><img class="alignleft size-full wp-image-161" title="web-browser" src="http://www.modulaweb.fr/blog/wp-content/uploads/2009/03/web-browser.png" alt="web-browser" width="128" height="128" /></a>J'en ai la larme à l'œil : enfin, depuis 10 ans qu'on attendait ça, un produit Microsoft™ respecte (en très grande partie du moins) les standards du web.</p>
<p>Jusqu'ici, Internet Explorer™ était un cauchemar pour l'intégration : chaque version ayant ses propres bugs, et ayant pas moins de 3 versions boguées sur le marché, chaque design devait être repensé pour chaque version... autant au niveau design (css) que code (javascript, <acronym title="Document Object Model">DOM</acronym>).</p>
<p>La question qui se pose maintenant est : «est-ce que Internet Explorer™ 8 est toujours Le Mal ?» et ma réponse est «oui, toujours !»<span id="more-90"></span></p>
<h2>Pourquoi Internet Explorer™ est toujours Le Mal ?</h2>
<p>Outre le fait que, par défaut, des informations personnelles sont envoyées à Microsoft™ ("programme d'amélioration des logiciels" et "système proposant des pages en rapport avec les pages que vous visitez, en fonction de l'historique", système "anti-phishing"), Internet Explorer™ garde une rétro-compatibilité avec ses anciennes versions et autorise toujours l'exécution de programmes ActiveX... mais surtout : il permet à certains de dire qu'il n'est plus besoin de se tourner vers des alternatives comme Firefox™, ou Opera™, car Internet Explorer™ fait désormais aussi bien.</p>
<h2>Quoi de neuf sur <acronym title="Internet Explorer™">IE</acronym> ?</h2>
<p>Les standards sont respectés, et l'affichage des sites est du même niveau que Firefox™, Opera™ ou Safari™ et même javascript et le DOM sont "touchés" par ces améliorations ! il n'est plus vraiment besoin d'agir différemment avec cette version d'IE et les autres navigateurs !</p>
<p>Contrepartie de ces améliorations : si vous utilisiez des insertions conditionnelles &amp;lt;!-- [if IE] &gt; il vous faudra les transformer la plus part du temps en &amp;lt;!-- [if lt IE 8]&gt; ou &amp;lt;!-- [if lte IE 7]&gt; car si non vos hacks ne seront plus valides...</p>
<h3>Dans le détail</h3>
<p>Cette partie s'enrichira potentiellement au fil du temps. Travaillant exclusivement sous GNU/Linux, je n'emploie IE que dans une machine virtuelle et ponctuellement pour déboguer des scripts et des règles CSS pour IE... les "découvertes" sont donc irrégulière par usage.</p>
<h4>Standards (HTML-CSS)</h4>
<p>On se croirait dans un navigateur "normal" : le rendu est correct, sans optimisation spécifique, un site web utilisant (X)HTMl et CSS apparaîtra de la même manière que sous Firefox™, Opera™ ou Safari™.</p>
<h4>Javascript et DOM</h4>
<p>Là aussi, rien à signaler de spécifique : IE se comporte enfin normalement et le DOM semble correct : plus besoin de détecter IE et de s'adapter à ses spécificités !</p>
<h4>Support du PNG</h4>
<p>Autrefois, on devait soit ne pas utiliser de PNG transparents soit les utiliser uniquement dans des balises &lt;img&gt; afin de leur appliquer, via javascript, un filtre DirectX™ pour leur ajouter une couche alpha non bugguée : terminé avec cette version! Les PNG transparents sont gérés correctement et n'apparaissent plus, en l'absence de patch, avec un fond beige du plus mauvais effet.</p>
<h4>Vie privée - caractère intrusif</h4>
<p>Lors de l'installation, l'utilisateur est invité à participer au "programme d'amélioration des logiciels" (case cochée par défaut, noyée parmis d'autres infos). Il est aussi invité à ne pas désactiver une fonction permettant à IE de proposer des pages en rapport avec celle qu'on est en train de lire. Enfin, le système anti-phishing, qui compare l'adresse du site que vous êtes en train de visualiser avec une liste de site connus pour être des sites de phishing hébergée par Microsoft™.</p>
<p>Sans vouloir dire que, forcément, Microsoft™ utilise les données recuieuillies à des fins douteuses, étant donné que chez Microsoft™ tout est opaque, breveté, secret, verrouillé... je me pose certaines questions sur la finalité : le MSN™ Live™ Messenger™ n'affiche-t-il pas déjà des publicités, parfois en rapport avec le message personnel de l'utilisateur ou ses conversations ? et cela sans qu'on puisse refuser de voir ces publicités ni connaître, exactement, les informations envoyées aux annonceurs ?</p>
<p>Autre intrusion dans l'utilisation courante : lors de la visite de certains sites, qui ne proposent aucun contenu Flash™, IE propose d'installer le plugin Flash™ prétextant que le site «souhaite» exécuter du Flash™... bizarre et plutôt curieux, surtout si on pense que Microsoft™ tente de prendre des parts de marché à Flash™ avec son produit équivalent Silverlight™.</p>
<p>Par ailleurs, IE intègre un outil permettant de bloquer la divulgation de données à d'autres sites que celui visité via l'inclusion de contenus externes (comme les trackers de visites à la Xiti™ ou Google™ Analytics™)</p>
<h4>Développement - déboguage</h4>
<p>IE intègre désormais un outil, autrefois externe, se voulant l'équivalent de la «Webdevelopper toolbar» disponible en plugin pour Firefox™. Gâce à son mode de retro-compatibilité, on peut déboguer des scripts et CSS pour IE8, IE7 et en «quirks mode». Bien que fournie en fonctionalités, il va falloir travailler encore pour arriver au niveau de la «Webdevelopper toolbar» en ce qui concerne le coté pratique.</p>
<h4 class='related-posts-header'>Articles apparentés</h4><ul class="related-posts-list"><li class="related-post"><a href="http://www.modulaweb.fr/blog/2009/04/flash-non-intrusif/">Flash™ non intrusif</a> </li><li class="related-post"><a href="http://www.modulaweb.fr/blog/2009/02/forcer-l-evaluation-du-code-dans-un-contexte-global-en-javascript/">Forcer l'évaluation du code dans un contexte global en javascript</a> </li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.modulaweb.fr/blog/2009/03/internet-explorer-8-enfin-un-produit-microsoft-qui-respecte-les-standards/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Forcer l&#8217;évaluation du code dans un contexte global en javascript</title>
		<link>http://www.modulaweb.fr/blog/2009/02/forcer-l-evaluation-du-code-dans-un-contexte-global-en-javascript/</link>
		<comments>http://www.modulaweb.fr/blog/2009/02/forcer-l-evaluation-du-code-dans-un-contexte-global-en-javascript/#comments</comments>
		<pubDate>Thu, 26 Feb 2009 14:34:30 +0000</pubDate>
		<dc:creator>Jean-François VIAL</dc:creator>
				<category><![CDATA[Choses utiles]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.modulaweb.fr/?p=74</guid>
		<description><![CDATA[Lors d'un appel de la fonction javascript eval, l'évaluation est faite à l'intérieur du contexte courant... sauf si on fournit à eval un référentiel de contexte différent. De même, lorsqu'une variable est créée à l'intérieur d'une fonction, elle ne survit pas à la fin de cette fonction. Par exemple, lors de l'utilisation d'une objet XMLHTTPRequest [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.modulaweb.fr/blog/2009/02/forcer-l-evaluation-du-code-dans-un-contexte-global-en-javascript/application-x-shellscript/" rel="attachment wp-att-168"><img src="http://www.modulaweb.fr/blog/wp-content/uploads/2009/02/application-x-shellscript.png" alt="" title="" width="128" height="128" class="alignleft size-full wp-image-168" /></a>Lors d'un appel de la fonction javascript <em>eval</em>, l'évaluation est faite à l'intérieur du contexte courant... sauf si on fournit à <em>eval</em> un référentiel de contexte différent. De même, lorsqu'une variable est créée à l'intérieur d'une fonction, elle ne survit pas à la fin de cette fonction.<span id="more-74"></span></p>
<p>Par exemple, lors de l'utilisation d'une objet XMLHTTPRequest avec <a href="http://prototypejs.org">Prototype</a>, comme suit :</p>
<pre class="javascript"><span style="color: #003366; font-weight: bold;">var</span> mavairable = <span style="color: #CC0000;">1</span>;
<span style="color: #003366; font-weight: bold;">function</span> ajax<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
	<span style="color: #003366; font-weight: bold;">new</span> Ajax.<span style="color: #006600;">Request</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'moncgi.php'</span>,<span style="color: #66cc66;">&#123;</span>
		method: <span style="color: #3366CC;">'get'</span>,
		onSuccess: <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #66cc66;">&#40;</span>t<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #003366; font-weight: bold;">var</span> scripts = t.<span style="color: #006600;">responseText</span>.<span style="color: #006600;">extractScripts</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #003366; font-weight: bold;">var</span> r = scripts.<span style="color: #006600;">map</span><span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>script<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
				<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">eval</span><span style="color: #66cc66;">&#40;</span>script<span style="color: #66cc66;">&#41;</span>;
			<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>,
		onException: <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #66cc66;">&#40;</span>xhr,e<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #000066;">alert</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'Une erreur est survenue...<span style="color: #000099; font-weight: bold;">\n</span>'</span>+e.<span style="color: #006600;">toQueryString</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre>
<p>si la réponse du cgi est un script du type :</p>
<pre class="javascript">mavariable = <span style="color: #CC0000;">10</span>;</pre>
<p>la valeur de la variable <em>mavariable</em> restera à <em>1</em>...</p>
<p>Pour faire en sorte qu<em>'eval</em> puisse "toucher" aux variables du contexte global, il "suffit" d'employer l'une ou l'autre des méthodes suivantes :</p>
<h2>1. utiliser l'objet <em>window</em></h2>
<pre class="javascript">window.<span style="color: #000066; font-weight: bold;">eval</span><span style="color: #66cc66;">&#40;</span>script<span style="color: #66cc66;">&#41;</span></pre>
<p>En faisant celà, le code est rattaché au contexte de l'object window… et c'est justement dans ce contexte que s'exécutent tous les autres.</p>
<h2>2. utiliser un objet global</h2>
<pre class="javascript"><span style="color: #003366; font-weight: bold;">var</span> global = <span style="color: #000066; font-weight: bold;">this</span>; <span style="color: #009900; font-style: italic;">// à placer dans le contexte global</span>
&nbsp;
global.<span style="color: #000066; font-weight: bold;">eval</span><span style="color: #66cc66;">&#40;</span>script<span style="color: #66cc66;">&#41;</span>; <span style="color: #009900; font-style: italic;">// à placer dans le contexte du XHR par exemple</span></pre>
<p>Même chose que précédemment l'object ainsi créé est une instance de l'objet "window" (le this).<br />
Voilà !</p>
<h4 class='related-posts-header'>Articles apparentés</h4><ul class="related-posts-list"><li class="related-post"><a href="http://www.modulaweb.fr/blog/2009/04/flash-non-intrusif/">Flash™ non intrusif</a> </li><li class="related-post"><a href="http://www.modulaweb.fr/blog/2009/03/internet-explorer-8-enfin-un-produit-microsoft-qui-respecte-les-standards/">Internet Explorer™ 8 : enfin un produit Microsoft™ qui respecte les standards</a> </li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.modulaweb.fr/blog/2009/02/forcer-l-evaluation-du-code-dans-un-contexte-global-en-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

