<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://blog.britoweb.net/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Blog - Britoweb - Tag - javascript</title>
  <link>http://blog.britoweb.net/</link>
  <atom:link href="http://blog.britoweb.net/feed/tag/javascript/rss2" rel="self" type="application/rss+xml"/>
  <description>Le Web à la sauce standard</description>
  <language>fr</language>
  <pubDate>Sat, 03 Jan 2009 15:02:47 +0100</pubDate>
  <copyright>Billets sous licence Creative Commons BY-NC-SA</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Ce n'est pas bien de mêler code HTML, CSS et JavaScript !</title>
    <link>http://blog.britoweb.net/post/2008/11/24/Ce-n-est-pas-bien-de-meler-code-HTML-CSS-et-JavaScript</link>
    <guid isPermaLink="false">urn:md5:c2acd98a2570b5d693d500595fffe77e</guid>
    <pubDate>Mon, 24 Nov 2008 13:17:00 +0100</pubDate>
    <dc:creator>Victor Brito</dc:creator>
        <category>bonnes pratiques codage</category><category>css</category><category>dom</category><category>html</category><category>javascript</category>    
    <description>&lt;p&gt;Bruno Bichet a publié hier sur son &lt;a href=&quot;http://www.css4design.com&quot; title=&quot;CSS4design, le blog de Bruno Bichet sur l'intégration Web&quot;&gt;blog&lt;/a&gt; un &lt;a href=&quot;http://www.css4design.com/blog/le-code-css-et-javascript-inline-saimal&quot; title=&quot;Billet de Bruno Bichet sur les raisons de ne pas insérer des CSS et du JavaScript dans le code HTML&quot;&gt;billet&lt;/a&gt; expliquant pourquoi ce n'est pas une bonne pratique que de mélanger le code HTML, les CSS (à coup d'attributs &lt;code xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;style&lt;/code&gt;) et le JavaScript (à coups d'attributs d'événements de type &lt;code&gt;&lt;span xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;on&lt;/span&gt;&lt;var&gt;nom de l'événement&lt;/var&gt;&lt;/code&gt;). Il s'agit d'une traduction (Bruno Bichet parle de &lt;q cite=&quot;http://www.css4design.com/blog/le-code-css-et-javascript-inline-saimal&quot;&gt;craduction&lt;/q&gt; &lt;img src=&quot;http://blog.britoweb.net/themes/normal-marron/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt; ) d'un &lt;a href=&quot;http://www.robertnyman.com/2008/11/20/why-inline-css-and-javascript-code-is-such-a-bad-thing/&quot; hreflang=&quot;en&quot; title=&quot;Billet de Robert Nyman expliquant pourquoi il est mauvais d'insérer les CSS et le JavaScript en plein code HTML&quot;&gt;billet de Robert Nyman, en anglais, à ce sujet&lt;/a&gt;.&lt;/p&gt;    &lt;p&gt;Dans l'ensemble, il n'y a rien à ajouter aux explications de Bruno Bichet, explications qui se doublent d'une démonstration de ce qu'il faut faire si l'on se soucie de &lt;strong&gt;bonnes pratiques de codage en CSS et en JavaScript&lt;/strong&gt;&amp;nbsp;: autrement dit, il faut &lt;strong&gt;séparer&lt;/strong&gt; le contenu (et la structure, de préférence conforme au balisage sémantique, de ce contenu) de sa présentation et des comportements dynamiques qui s'y appliquent. N'oublions pas que c'est pour tendre à cet objectif de séparation que les feuilles de styles sont apparues (pour rappel, il y a bientôt douze ans&amp;nbsp;!) et qu'on a mis au point le concept d'&lt;em xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;unobstrusive JavaScript&lt;/em&gt; (en bon français, le &lt;em&gt;JavaScript non intrusif&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;D'ailleurs, à propos de JavaScript, j'ai une remarque à faire concernant la gestion des événements et la résolution des conflits éventuels entre plusieurs gestionnaires d'événement. Il n'est pas nécessaire de recourir à une bibliothèque JavaScript pour faire cohabiter pacifiquement plusieurs gestionnaires d'événements&amp;nbsp;: en effet, la &lt;a href=&quot;http://www.w3.org/TR/DOM-Level-2-Events/&quot; hreflang=&quot;en&quot;&gt;spécification &lt;acronym title=&quot;Document Object Model&quot;&gt;DOM&lt;/acronym&gt; niveau 2 événements du &lt;acronym title=&quot;World Wide Web Consortium&quot;&gt;W3C&lt;/acronym&gt;&lt;/a&gt; a de quoi suffire, ainsi que la gestion des événements propre à Internet Explorer.&lt;/p&gt;
&lt;pre xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;function fnAjaxNews ()
{
  // Get news through &lt;acronym title=&quot;Asynchronous JavaScript and XML&quot;&gt;Ajax&lt;/acronym&gt;
}

function fnGetNews ()
{
  var oGetNews = document.getElementById ('get-news');
  // For standards-compliant browsers
  if (oGetNews.addEventListener) oGetNews.addEventListener ('click', fnAjaxNews, false);
  // For Internet Explorer
  else if (oGetNews.attachEvent) oGetNews.attachEvent ('onclick', fnAjaxNews);
  // For browsers who do not understand DOM level 2, there is no event
  else return;
}

// Let us load the function above
function fnLoad ()
{
  // For standards-compliant browsers
  if (window.addEventListener) window.addEventListener ('load', fnGetNews, false);
  // For Internet Explorer
  else if (window.attachEvent) window.attachEvent ('onload', fnGetNews);
  // For browsers who do not understand DOM level 2, there is no event
  // (which means these browsers will behave as though JavaScript were deactivated or not supported)
  else return;
}
// Execute
fnLoad ();&lt;/pre&gt;
&lt;p&gt;Sans doute y a-t-il plus de code à pondre que si l'on utilisait une bibliothèque JavaScript&amp;nbsp;; mais, ce bout de code a l'avantage d'éviter les conflits (d'autres fichiers JavaScript pourront être appelés qui gèrent les évenements de la sorte) et de ne pas servir de JavaScript (c'est un choix) aux navigateurs incapables d'implémenter l'une des deux méthodes d'ajout d'événement (que ce soit la méthode standard ou la méthode propriétaire d'&lt;abbr title=&quot;Internet Explorer&quot;&gt;IE&lt;/abbr&gt;)&amp;nbsp;: pour ces derniers, il y aura donc une &lt;em&gt;dégradation élégante&lt;/em&gt;, qui ne sera pas gênante, pourvu que le contenu soit parfaitement accessible sans JavaScript.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Bien développer pour le Web 2.0 de Christophe Porteneuve, deuxième édition : note de lecture</title>
    <link>http://blog.britoweb.net/post/2008/11/22/Bien-developper-pour-le-Web-2-0-de-Christophe-Porteneuve-deuxieme-edition-note-de-lecture</link>
    <guid isPermaLink="false">urn:md5:9e41054aa3293729e2a5681d73dbb53a</guid>
    <pubDate>Sat, 22 Nov 2008 14:48:00 +0100</pubDate>
    <dc:creator>Victor Brito</dc:creator>
        <category>JavaScript / Ajax</category>
        <category>ajax</category><category>javascript</category><category>livre ajax</category><category>livre javascript</category>    
    <description>&lt;p&gt;Les éditions &lt;a href=&quot;http://www.eyrolles.com&quot;&gt;Eyrolles&lt;/a&gt; ont publié le mois dernier la deuxième édition de &lt;em&gt;&lt;a href=&quot;http://www.eyrolles.com/Informatique/Livre/bien-developper-pour-le-web-2-0-9782212123913&quot; title=&quot;Fiche du livre Bien développer pour le Web 2.0 - Bonnes pratiques Ajax, de Christophe Porteneuve, sur le site des éditions Eyrolles&quot;&gt;Bien développer pour le Web 2.0 - Bonnes pratiques &lt;acronym title=&quot;Asynchronous JavaScript and XML&quot;&gt;Ajax&lt;/acronym&gt;&lt;/a&gt;&lt;/em&gt;, de Christophe Porteneuve.&lt;/p&gt;    &lt;p&gt;Le titre du livre en dit assez sur son objectif&amp;nbsp;: inculquer aux développeurs de bonnes pratiques pour mettre en place des applications imprégnées de JavaScript non intrusif, de respect des standards du Web et même d'accessibilité. Même s'il y a beaucoup de matière (pas moins de 674 pages&amp;nbsp;!), les différents chapitres sont d'autant plus agréables à lire que le ton employé n'a absolument rien d'un cours magistral ennuyeux et reflète la passion qui anime l'auteur.&lt;/p&gt;
&lt;p&gt;La deuxième édition de ce livre, parue deux ans après la première, tient compte de l'évolution des navigateurs&amp;nbsp;: Internet Explorer 8 est abordé, ainsi que les derniers outils de développement (comme le &lt;span xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;Dragonfly&lt;/span&gt; d'Opera). En outre, cette deuxième édition s'est enrichie d'un chapitre très instructif sur le débogage en JavaScript, ainsi que d'un chapitre sur des &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt;s tierces comme Google Maps.&lt;/p&gt;
&lt;p&gt;Le principal regret, c'est que, pour la couche serveur nécessaire aux requêtes Ajax, l'auteur préfère le langage Ruby à &lt;acronym title=&quot;Hypertext Preprocessor&quot;&gt;PHP&lt;/acronym&gt; (c'est son droit &lt;img src=&quot;http://blog.britoweb.net/themes/normal-marron/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt; )&amp;nbsp;; nonobstant, ses exemples d'utilisation d'Ajax sont aisément adaptables à PHP. &lt;img src=&quot;http://blog.britoweb.net/themes/normal-marron/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt; Un autre regret peut aussi venir à l'esprit des inconditionnels de J&lt;span xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;Query&lt;/span&gt;, en ce sens que l'auteur, parmi les bibliothèques et autres &lt;span xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;frameworks&lt;/span&gt; JavaScript, n'aborde que &lt;span xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;Prototype&lt;/span&gt; et &lt;span xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;script.aculo.us&lt;/span&gt;, se contentant d'indiquer l'existence d'autres bibliothèques (dont J&lt;span xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;Query&lt;/span&gt;) dans une annexe.&lt;/p&gt;
&lt;p&gt;Cela dit, ces regrets n'amoindrissent en rien l'intérêt de lire ce livre. De plus, &lt;a href=&quot;http://www.editions-eyrolles.com/download/9782212123913/BienDevelopperPourLeWeb2.0-CodesSources.zip&quot; type=&quot;application/zip&quot; title=&quot;Télécharger le code source de la plupart des exemples figurant dans le livre Bien développer pour le Web 2.0 - Bonnes pratiques Ajax, de Christophe Porteneuve (archive zip de 2,2&amp;nbsp;Mo)&quot;&gt;la plupart des exemples y figurant peuvent être téléchargés&lt;/a&gt; sur le site d'Eyrolles, regroupés dans une archive zip.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Internet Explorer 8 et le JavaScript : un détail intriguant</title>
    <link>http://blog.britoweb.net/post/2008/10/07/Internet-Explorer-8-et-le-JavaScript-un-detail-intriguant</link>
    <guid isPermaLink="false">urn:md5:75d0d8f71660dc6da0d34ea114b64fd0</guid>
    <pubDate>Tue, 07 Oct 2008 21:19:00 +0200</pubDate>
    <dc:creator>Victor Brito</dc:creator>
        <category>Navigateurs</category>
        <category>internet explorer</category><category>internet explorer 8</category><category>javascript</category><category>standards web</category>    
    <description>&lt;p&gt;En parcourant rapidement un &lt;a href=&quot;http://blogs.msdn.com/ie/archive/2008/10/06/updates-for-ajax-in-ie8-beta-2.aspx&quot; hreflang=&quot;en&quot;&gt;billet du blog de &lt;abbr title=&quot;MicroSoft Developer Network&quot;&gt;MSDN&lt;/abbr&gt; sur les mises à jour d'&lt;abbr title=&quot;Internet Explorer&quot;&gt;IE&lt;/abbr&gt; 8 concernant Ajax&lt;/a&gt;, je suis tombé sur le bout de code suivant qui m'a particulièrement intrigué&amp;nbsp;: &lt;q cite=&quot;http://blogs.msdn.com/ie/archive/2008/10/06/updates-for-ajax-in-ie8-beta-2.aspx&quot;&gt;&lt;code xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;window.attachEvent(&quot;onmessage&quot;, HandleMessage);&lt;/code&gt;&lt;/q&gt;.&lt;/p&gt;    &lt;p&gt;Ceux qui connaissent bien les gestionnaires d'événements en JavaScript auront vite remarqué que le bout de code en question montre la méthode propriétaire d'IE pour ajouter un événement à un élément. Or, la méthode standard prévue par JavaScript à cet effet est &lt;code xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;addEventListener&lt;/code&gt;. Et le billet en question ne mentionne nulle part un &lt;code xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;window.addEventListener(&quot;message&quot;, HandleMessage, false);&lt;/code&gt; (l'ajout d'événement tel que le reconnaissent Opera, Firefox, Safari et tous les navigateurs respectueux des standards).&lt;/p&gt;
&lt;p&gt;Cela voudrait-il dire qu'au sujet d'IE 8, Microsoft ne tient pas toutes ses promesses en matière de support des standards du Web (et pas seulement des CSS)&amp;nbsp;? &lt;img src=&quot;http://blog.britoweb.net/themes/normal-marron/smilies/confused.png&quot; alt=&quot;:-/&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Internet Explorer 8 fournit un support natif de JSON</title>
    <link>http://blog.britoweb.net/post/2008/09/10/Internet-Explorer-8-fournit-un-support-natif-de-JSON</link>
    <guid isPermaLink="false">urn:md5:57151adcb7834845536db6d5466ae3f8</guid>
    <pubDate>Wed, 10 Sep 2008 21:10:00 +0200</pubDate>
    <dc:creator>Victor Brito</dc:creator>
        <category>Navigateurs</category>
        <category>internet explorer</category><category>internet explorer 8</category><category>javascript</category><category>json</category>    
    <description>    &lt;p&gt;C'est ce qu'annonce, entre autres, le blog de &lt;acronym title=&quot;MicroSoft Developer Network&quot;&gt;MSDN&lt;/acronym&gt; dans un &lt;a href=&quot;http://blogs.msdn.com/ie/archive/2008/09/09/what-s-new-for-jscript-for-ie8-beta-2.aspx&quot; hreflang=&quot;en&quot; title=&quot;Billet du blog de MSDN sur les nouveautés de JScript dans Internet Explorer 8 bêta 2, parmi lesquelles le support natif de JSON&quot;&gt;billet consacré aux nouveautés de JScript (le JavaScript à la sauce &lt;abbr title=&quot;Internet Explorer&quot;&gt;IE&lt;/abbr&gt;) dans la bêta 2&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Connaissez-vous les JSSS ?</title>
    <link>http://blog.britoweb.net/post/2008/06/23/Connaissez-vous-les-JSSS</link>
    <guid isPermaLink="false">urn:md5:d7505e5236415392791d5f6f13e09736</guid>
    <pubDate>Mon, 23 Jun 2008 22:12:00 +0200</pubDate>
    <dc:creator>Victor Brito</dc:creator>
        <category>CSS</category>
        <category>css</category><category>internet explorer</category><category>javascript</category><category>jsss</category><category>netscape</category><category>netscape 4</category><category>netscape 6</category><category>w3c</category>    
    <description>&lt;p&gt;En lisant un &lt;a href=&quot;http://openweb.eu.org/articles/interview_glazman_css/&quot;&gt;entretien accordé par Daniel Glazman à Openweb sur les &lt;acronym title=&quot;Cascading StyleSheets&quot;&gt;CSS&lt;/acronym&gt;&lt;/a&gt;, je suis tombé sur le sigle suivant&amp;nbsp;: &lt;acronym title=&quot;JavaScript StyleSheets&quot;&gt;JSSS&lt;/acronym&gt;.&lt;/p&gt;    &lt;p&gt;J'ai ainsi appris qu'il y a une décennie (ce qui, à l'échelle du Web, veut dire dans l'Antiquité), Netscape mit au point les feuilles de style JavaScript (en anglais &lt;q lang=&quot;en&quot;&gt;JavaScript StyleSheets&lt;/q&gt;), qui concurrençaient les CSS.&lt;/p&gt;


&lt;p&gt;Si elles pouvaient être puissantes pour des &lt;q cite=&quot;http://en.wikipedia.org/wiki/JSSS&quot;&gt;calculs dynamiques hautement complexes&lt;/q&gt;&amp;nbsp;; en revanche, elles se rélévaient bien pauvres à côté des CSS, en ne supportant que le sélecteur d'élément simple. De plus, la syntaxe, issue de JavaScript, était plus verbeuse et sensible à la casse&amp;nbsp;: là où en CSS on écrit &lt;code&gt;h1 { font-size: 20pt; }&lt;/code&gt;, en JSSS on écrivait &lt;code&gt;document.tags.H1.fontSize = &quot;20pt&quot;;&lt;/code&gt;.&lt;/p&gt;


&lt;p&gt;Bien que &lt;a href=&quot;http://www.w3.org/Submission/1996/1/WD-jsss-960822&quot; hreflang=&quot;en&quot; title=&quot;Proposition des JSSS comme standard par Netscape au W3C&quot;&gt;Netscape eût soumis les JSSS au &lt;acronym title=&quot;World Wide Web Consortium&quot;&gt;W3C&lt;/acronym&gt;&lt;/a&gt;, elles ne furent jamais acceptées comme standard. Qui pis est, elles furent d'autant plus boudées par le marché que le principal concurrent de Netscape, Internet Explorer, n'hésita pas à adopter les CSS comme langage de feuille de style. Seul Netscape 4, sorti en 1997, supportait les JSSS&amp;nbsp;; mais, très vite, la société Netscape laissa tomber la promotion de ce langage propriétaire pour s'intéresser aux CSS et cessa tout support des JSSS à la sortie de Netscape 6, en 2000.&lt;/p&gt;


&lt;p&gt;Pour plus de détails, un &lt;a href=&quot;http://en.wikipedia.org/wiki/JSSS&quot; hreflang=&quot;en&quot; title=&quot;Article de la version anglaise de Wikipédia sur les JSSS&quot;&gt;article de Wikipédia&lt;/a&gt; lui est consacré, qui m'a servi de source pour les propos tenus dans ce billet.&lt;/p&gt;</description>
    
    
    
      </item>
    
</channel>
</rss>