DOMParser()

Je travaille sur un addon pour différents browser donc avec du code oecuménique si possible. J’ai une liste d’ouvrages dont les noms contiennent des caractères accentués. Initialement la liste était dans la source (mauvaise idée) puis, après des déboires sur l’encodage de ces accents (JSON est explicitement encodé dans un certain charset, charset mentionné dans les headers, donc problème en local) (notoirement avec Safari), je suis passé à 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’ensuite, sur ma route vers les bas-fonds, je suis tombé sur un problème avec Edge, en fin de tests de plates-formes.

Toujours est-il qu’Edge refuse mon script back (background/serviceworker) car selon lui « Uncaught (in promise) ReferenceError: DOMParser is not defined ». Edge est bien le seul à soulever une difficulté sur ce point. Sur mon chemin de croix vers une solution, je vois que certains, dans d’autres contextes inapplicables ici, utilisent new window.DOMParser(), on conséquence je finis par croire/comprendre que DOMParser() n’est pas disponible dans mon contexte de script d’arrière plan, un peu de la même manière qu’il n’est pas disponible pour un node.js, mode headless en quelque sorte.

https://stackoverflow.com/questions/68964543/chrome-extension-domparser-is-not-defined-with-manifest-v3

Bref, pas sympa. J’aurais sans doute dû passer par la nouvelle API offscreen mais bon, quelques regexps plus tard, j’étais sorti d’affaire car ma structure n’était pas compliquée. JSON/CSV/XML, la question ?

Dans le même ordre d’idée, les workers manifestV3 de Google Chrome ne supportent pas « URL.createObjectURL » ?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *