{"id":281,"date":"2023-03-26T15:26:33","date_gmt":"2023-03-26T15:26:33","guid":{"rendered":"https:\/\/habett.fr\/blog\/?p=281"},"modified":"2023-04-01T12:20:51","modified_gmt":"2023-04-01T12:20:51","slug":"domparser","status":"publish","type":"post","link":"https:\/\/habett.fr\/blog\/2023\/03\/domparser\/","title":{"rendered":"DOMParser()"},"content":{"rendered":"\n<p>Je travaille sur un addon pour diff\u00e9rents browser donc avec du code oecum\u00e9nique si possible. J&rsquo;ai une liste d&rsquo;ouvrages dont les noms contiennent des caract\u00e8res accentu\u00e9s. Initialement la liste \u00e9tait dans la source (mauvaise id\u00e9e) puis, apr\u00e8s des d\u00e9boires sur l&rsquo;encodage de ces accents (JSON est explicitement encod\u00e9 dans un certain charset, charset mentionn\u00e9 dans les headers, donc probl\u00e8me en local)  (notoirement avec Safari), je suis pass\u00e9 \u00e0 un fichier .xml inclus. Tout allait bien en utilisant un DOMParser() qui est la solution typique dans ce cas. (ceux qui font du innerHTML peuvent sortir). Reste qu&rsquo;ensuite, sur ma route vers les bas-fonds, je suis tomb\u00e9 sur un probl\u00e8me avec Edge, en fin de tests de plates-formes.<\/p>\n\n\n\n<p>Toujours est-il qu&rsquo;Edge refuse mon script back (background\/serviceworker) car selon lui \u00ab\u00a0Uncaught (in promise) ReferenceError: DOMParser is not defined\u00a0\u00bb. Edge est bien le seul \u00e0 soulever une difficult\u00e9 sur ce point. Sur mon chemin de croix vers une solution, je vois que certains, dans d&rsquo;autres contextes inapplicables ici, utilisent new window.DOMParser(), on cons\u00e9quence je finis par croire\/comprendre que DOMParser() n&rsquo;est pas disponible dans mon contexte de script d&rsquo;arri\u00e8re plan, un peu de la m\u00eame mani\u00e8re qu&rsquo;il n&rsquo;est pas disponible pour un node.js, mode headless en quelque sorte.<\/p>\n\n\n\n<p><a href=\"https:\/\/stackoverflow.com\/questions\/68964543\/chrome-extension-domparser-is-not-defined-with-manifest-v3\">https:\/\/stackoverflow.com\/questions\/68964543\/chrome-extension-domparser-is-not-defined-with-manifest-v3<\/a><\/p>\n\n\n\n<p>Bref, pas sympa. J&rsquo;aurais sans doute d\u00fb passer par la nouvelle API offscreen mais bon, quelques regexps plus tard, j&rsquo;\u00e9tais sorti d&rsquo;affaire car ma structure n&rsquo;\u00e9tait pas compliqu\u00e9e. JSON\/CSV\/XML, la question ?<\/p>\n\n\n\n<p>Dans le m\u00eame ordre d&rsquo;id\u00e9e, les workers manifestV3 de Google Chrome ne supportent pas \u00ab\u00a0URL.createObjectURL\u00a0\u00bb ?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Je travaille sur un addon pour diff\u00e9rents browser donc avec du code oecum\u00e9nique si possible. J&rsquo;ai une liste d&rsquo;ouvrages dont les noms contiennent des caract\u00e8res accentu\u00e9s. Initialement la liste \u00e9tait dans la source (mauvaise id\u00e9e) puis, apr\u00e8s des d\u00e9boires sur l&rsquo;encodage de ces accents (JSON est explicitement encod\u00e9 dans un certain charset, charset mentionn\u00e9 dans &hellip; <a href=\"https:\/\/habett.fr\/blog\/2023\/03\/domparser\/\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">DOMParser()<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[48,52],"tags":[],"class_list":["post-281","post","type-post","status-publish","format-standard","hentry","category-webextension","category-xml"],"_links":{"self":[{"href":"https:\/\/habett.fr\/blog\/wp-json\/wp\/v2\/posts\/281","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/habett.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/habett.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/habett.fr\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/habett.fr\/blog\/wp-json\/wp\/v2\/comments?post=281"}],"version-history":[{"count":12,"href":"https:\/\/habett.fr\/blog\/wp-json\/wp\/v2\/posts\/281\/revisions"}],"predecessor-version":[{"id":307,"href":"https:\/\/habett.fr\/blog\/wp-json\/wp\/v2\/posts\/281\/revisions\/307"}],"wp:attachment":[{"href":"https:\/\/habett.fr\/blog\/wp-json\/wp\/v2\/media?parent=281"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/habett.fr\/blog\/wp-json\/wp\/v2\/categories?post=281"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/habett.fr\/blog\/wp-json\/wp\/v2\/tags?post=281"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}