<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Wiki des éditeurs et encyclopédie d'intégration des widgets | PC Part Comparator</title><link>https://thecomparator.tech/fr-ca/publishers/academy/</link><atom:link href="https://thecomparator.tech/fr-ca/publishers/academy/index.xml" rel="self" type="application/rss+xml"/><description>Wiki des éditeurs et encyclopédie d'intégration des widgets</description><generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>fr-CA</language><lastBuildDate>Tue, 04 Aug 2026 00:00:00 +0000</lastBuildDate><item><title>Monétisation et intégration des clés d'affiliation</title><link>https://thecomparator.tech/fr-ca/publishers/academy/monetization-and-affiliate-keys/</link><pubDate>Tue, 04 Aug 2026 00:00:00 +0000</pubDate><guid>https://thecomparator.tech/fr-ca/publishers/academy/monetization-and-affiliate-keys/</guid><description>&lt;h1 id="monétisation-et-intégration-des-clés-daffiliation"&gt;Monétisation et intégration des clés d&amp;rsquo;affiliation&lt;/h1&gt;
&lt;p&gt;Les widgets de The Comparator permettent aux médias, aux testeurs et aux blogueurs techno de monétiser directement le trafic de recommandations de matériel. En injectant vos balises de suivi d&amp;rsquo;affiliation personnalisées dans nos suivis d&amp;rsquo;aubaines et nos intégrations de comparaison, 100 % des clics sortants sur les boutons « Aller à l&amp;rsquo;offre » portent vos identifiants d&amp;rsquo;affiliation.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="1-réseaux-daffiliation-et-paramètres-pris-en-charge"&gt;1. Réseaux d&amp;rsquo;affiliation et paramètres pris en charge&lt;/h2&gt;
&lt;p&gt;Vous pouvez ajouter vos balises d&amp;rsquo;affiliation globalement par la configuration du widget, ou directement dans le code avec des attributs &lt;code&gt;data-affiliate-*&lt;/code&gt; :&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Magasin / réseau&lt;/th&gt;
&lt;th&gt;Paramètre de la balise&lt;/th&gt;
&lt;th&gt;Exemple de valeur&lt;/th&gt;
&lt;th&gt;Réseaux pris en charge&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Amazon US&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;data-tag-amazon&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;mytechblog-20&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Amazon Associates&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Newegg US&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;data-tag-newegg&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;8483920&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Impact Radius / CJ Affiliate&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Best Buy&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;data-tag-bestbuy&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;bby-pub-99&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Impact&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="exemple-dintégration-standard-avec-des-balises-daffiliation-"&gt;Exemple d&amp;rsquo;intégration standard avec des balises d&amp;rsquo;affiliation :&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;iframe&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;src&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;https://thecomparator.tech/widget/deal-monitor/?category=gpu&amp;amp;tag_amazon=myblog-20&amp;amp;tag_newegg=998811&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;width&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;100%&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;height&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;480&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;frameborder&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;0&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;loading&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;lazy&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Suivi d&amp;#39;aubaines en direct pour cartes graphiques&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;iframe&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="2-règles-de-conformité-et-de-libellé-des-appels-à-laction"&gt;2. Règles de conformité et de libellé des appels à l&amp;rsquo;action&lt;/h2&gt;
&lt;p&gt;Pour protéger votre domaine d&amp;rsquo;éditeur et rester conforme à la FTC :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;« Aller à l&amp;rsquo;offre » plutôt que « Acheter maintenant » :&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Nous exigeons que tous les boutons d&amp;rsquo;appel à l&amp;rsquo;action des widgets affichent &lt;strong&gt;« Aller à l&amp;rsquo;offre »&lt;/strong&gt; (ou &lt;strong&gt;« Voir sur Amazon »&lt;/strong&gt;) lorsque les prix sont des instantanés de marché dynamiques.&lt;/li&gt;
&lt;li&gt;« Acheter pour X $ » est strictement interdit, sauf si le prix est garanti en temps réel.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Instantanés de prix datés :&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Chaque prix d&amp;rsquo;offre affiché dans le widget porte un horodatage (p. ex. &lt;code&gt;Prix au 4 août 2026&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Obligation de divulgation d&amp;rsquo;affiliation :&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Les éditeurs DOIVENT inclure une divulgation d&amp;rsquo;affiliation dans le texte, près du widget (p. ex. &lt;em&gt;« Lorsque vous achetez par les liens de notre site, nous pouvons toucher une commission d&amp;rsquo;affiliation. »&lt;/em&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="3-optimiser-les-taux-de-clics"&gt;3. Optimiser les taux de clics&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Préfiltrage contextuel par catégorie :&lt;/strong&gt; intégrez les widgets de cartes graphiques dans les tests de cartes graphiques, ceux de processeurs dans les tests de processeurs et ceux de SSD NVMe dans les sélections de stockage.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Choisir le profil selon le contexte de l&amp;rsquo;article :&lt;/strong&gt; utilisez &lt;code&gt;preset=gaming-1440p&lt;/code&gt; pour les articles sur les jeux, ou &lt;code&gt;preset=ai-llm&lt;/code&gt; pour les articles sur le matériel de station de travail et d&amp;rsquo;IA.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Harmonisation du thème :&lt;/strong&gt; utilisez &lt;code&gt;theme=auto&lt;/code&gt; pour que le widget épouse sans heurt le mode clair ou sombre de votre site.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="-guides-connexes-pour-éditeurs"&gt;🔗 Guides connexes pour éditeurs&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;🧩 &lt;strong&gt;
&lt;/strong&gt; : catalogue complet des extraits HTML et des options de configuration.&lt;/li&gt;
&lt;li&gt;🎨 &lt;strong&gt;
&lt;/strong&gt; : règles sur le mode sombre et les conteneurs adaptatifs.&lt;/li&gt;
&lt;li&gt;🎓 &lt;strong&gt;
&lt;/strong&gt; : aperçu de tous les outils et fonctions pour éditeurs.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Guide d'intégration des widgets pour éditeurs</title><link>https://thecomparator.tech/fr-ca/publishers/academy/widget-embed-guide/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://thecomparator.tech/fr-ca/publishers/academy/widget-embed-guide/</guid><description>&lt;h1 id="guide-dintégration-des-widgets-pour-éditeurs"&gt;Guide d&amp;rsquo;intégration des widgets pour éditeurs&lt;/h1&gt;
&lt;p&gt;The Comparator propose des widgets de valeur du matériel légers et interactifs que les éditeurs peuvent intégrer directement dans leurs tests techno et leurs guides d&amp;rsquo;achat.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="1-types-de-widgets-et-cas-dusage"&gt;1. Types de widgets et cas d&amp;rsquo;usage&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Type de widget&lt;/th&gt;
&lt;th&gt;Emplacement idéal dans l&amp;rsquo;article&lt;/th&gt;
&lt;th&gt;Ce qu&amp;rsquo;il affiche&lt;/th&gt;
&lt;th&gt;Lien d&amp;rsquo;aperçu&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Suivi d&amp;rsquo;aubaines&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Fiches de test de produit&lt;/td&gt;
&lt;td&gt;Le plus bas prix actuel du marché, l&amp;rsquo;état du stock, la tendance des prix sur 30 jours&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Indicateur de valeur&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Conclusion ou verdict&lt;/td&gt;
&lt;td&gt;Jauge de valeur algorithmique de 0 à 100 par rapport au marché&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Comparaison face à face&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Articles de comparaison de deux produits&lt;/td&gt;
&lt;td&gt;Tableau comparatif des spécifications côte à côte et verdict&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="2-intégration-standard-par-iframe"&gt;2. Intégration standard par iframe&lt;/h2&gt;
&lt;p&gt;Collez le code d&amp;rsquo;iframe adaptatif standard directement dans le bloc HTML de l&amp;rsquo;éditeur de votre article :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;&amp;lt;!-- Widget de suivi d&amp;#39;aubaines The Comparator --&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;iframe&lt;/span&gt; &lt;span class="na"&gt;src&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;https://thecomparator.tech/embed/deal-ryzen-7-9800x3d.html&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;width&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;100%&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;height&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;450&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;frameborder&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;0&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;scrolling&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;no&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;loading&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;lazy&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;AMD Ryzen 7 9800X3D : instantané des prix et valeur&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;iframe&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="3-instructions-propres-à-chaque-plateforme-de-gestion-de-contenu"&gt;3. Instructions propres à chaque plateforme de gestion de contenu&lt;/h2&gt;
&lt;h3 id="wordpress-éditeur-gutenberg"&gt;WordPress (éditeur Gutenberg)&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Ajoutez un bloc &lt;strong&gt;HTML personnalisé&lt;/strong&gt; dans l&amp;rsquo;éditeur de votre article.&lt;/li&gt;
&lt;li&gt;Collez l&amp;rsquo;extrait &lt;code&gt;&amp;lt;iframe&amp;gt;&lt;/code&gt; ci-dessus.&lt;/li&gt;
&lt;li&gt;Enregistrez ou publiez votre article.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="ghost-cms"&gt;Ghost CMS&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Cliquez sur l&amp;rsquo;icône &lt;code&gt;+&lt;/code&gt; dans l&amp;rsquo;éditeur Ghost et choisissez &lt;strong&gt;Carte HTML&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Collez l&amp;rsquo;extrait &lt;code&gt;&amp;lt;iframe&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="webflow-et-plateformes-personnalisées"&gt;Webflow et plateformes personnalisées&lt;/h3&gt;
&lt;p&gt;Collez le code dans un &lt;strong&gt;composant d&amp;rsquo;intégration&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="4-personnaliser-les-paramètres-du-widget"&gt;4. Personnaliser les paramètres du widget&lt;/h2&gt;
&lt;p&gt;Vous pouvez passer des paramètres d&amp;rsquo;adresse pour personnaliser le comportement du widget :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;theme=dark&lt;/code&gt; ou &lt;code&gt;theme=light&lt;/code&gt; : impose un jeu de couleurs précis.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;currency=USD&lt;/code&gt; : précise la devise du marché.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;subid=your_publisher_tag&lt;/code&gt; : joint votre balise de suivi d&amp;rsquo;affiliation personnalisée.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Exemple :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;iframe&lt;/span&gt; &lt;span class="na"&gt;src&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;https://thecomparator.tech/embed/deal-ryzen-7-9800x3d.html?theme=dark&amp;amp;subid=techblog_review_2026&amp;#34;&lt;/span&gt; &lt;span class="err"&gt;...&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;iframe&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Synchronisation des thèmes et iframes adaptatifs</title><link>https://thecomparator.tech/fr-ca/publishers/academy/theme-syncing-and-responsiveness/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://thecomparator.tech/fr-ca/publishers/academy/theme-syncing-and-responsiveness/</guid><description>&lt;h1 id="synchronisation-des-thèmes-et-architecture-des-iframes-adaptatifs"&gt;Synchronisation des thèmes et architecture des iframes adaptatifs&lt;/h1&gt;
&lt;p&gt;Pour que les widgets s&amp;rsquo;intègrent sans heurt aux sites des éditeurs, sans barres de défilement ni écart de couleurs, The Comparator utilise &lt;code&gt;assets/js/widget.js&lt;/code&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="1-comment-fonctionne-la-synchronisation-du-thème"&gt;1. Comment fonctionne la synchronisation du thème&lt;/h2&gt;
&lt;p&gt;Les sites hôtes passent souvent du mode clair au mode sombre. Le widget intégré écoute les changements de thème de la fenêtre parente à l&amp;rsquo;aide de l&amp;rsquo;API HTML5 &lt;code&gt;postMessage&lt;/code&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[Site hôte (parent)] ── postMessage({ type: &amp;#39;tc-theme&amp;#39;, theme: &amp;#39;dark&amp;#39; }) ──&amp;gt; [Widget Comparator (iframe)]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="configuration-du-script-sur-le-site-hôte"&gt;Configuration du script sur le site hôte&lt;/h3&gt;
&lt;p&gt;Ajoutez le script léger &lt;code&gt;widget.js&lt;/code&gt; au pied de votre page :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;script&lt;/span&gt; &lt;span class="na"&gt;src&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;https://thecomparator.tech/assets/js/widget.js&amp;#34;&lt;/span&gt; &lt;span class="na"&gt;async&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;script&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ce script :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Détecte les changements de la classe &lt;code&gt;dark&lt;/code&gt; sur &lt;code&gt;document.documentElement&lt;/code&gt; ou &lt;code&gt;document.body&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Vérifie &lt;code&gt;localStorage.theme&lt;/code&gt; et &lt;code&gt;prefers-color-scheme: dark&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Envoie des événements &lt;code&gt;tc-theme&lt;/code&gt; à tous les iframes Comparator actifs de la page.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="2-redimensionnement-automatique-de-la-hauteur"&gt;2. Redimensionnement automatique de la hauteur&lt;/h2&gt;
&lt;p&gt;Pour éviter les barres de défilement verticales dans l&amp;rsquo;iframe, le widget calcule dynamiquement la hauteur de son contenu et en informe la fenêtre parente :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// Exemple dans l&amp;#39;écouteur de widget.js
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt;&lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;message&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;type&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;tc-resize&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;iframe&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;querySelector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sb"&gt;`iframe[src*=&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;widgetId&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;&amp;#34;]`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;iframe&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;iframe&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;height&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;height&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;px&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="3-repli-sans-javascript"&gt;3. Repli sans JavaScript&lt;/h2&gt;
&lt;p&gt;Si le site hôte désactive JavaScript :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;L&amp;rsquo;iframe revient à la valeur par défaut &lt;code&gt;height=&amp;quot;450&amp;quot;&lt;/code&gt; indiquée dans le HTML.&lt;/li&gt;
&lt;li&gt;Le thème est celui du paramètre &lt;code&gt;theme&lt;/code&gt; de l&amp;rsquo;adresse (&lt;code&gt;?theme=light&lt;/code&gt; ou &lt;code&gt;?theme=dark&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>