Jsdom: Portées et parcours d'outil

Créé le 21 sept. 2011  ·  18Commentaires  ·  Source: jsdom/jsdom

http://www.w3.org/TR/DOM-Level-2-Traversal-Range/

  • https://dom.spec.whatwg.org/#ranges
  • https://dom.spec.whatwg.org/#traversal

Nous devrons trouver/écrire une suite de tests.

feature needs tests

Commentaire le plus utile

Tous les 18 commentaires

ugh, cette spécification a fait saigner mes yeux

ouais, j'aurais assez peur de l'implémenter sans une suite de tests w3c

Ce que j'ai découvert jusqu'à présent :

  • Il semble exister une sorte de suite de tests W3C pour cela, mais elle n'a apparemment jamais été publiée. Au moins, le développeur de Xerces a mis la main dessus . J'ai contacté Michael de Xerces, peut-être qu'il pourra m'aider.
  • Xerces a des tests appelés range, traversal et treewalker ; certains d'entre eux pourraient aider
  • De plus, Acid3 a un tas de tests complexes pour ce module

Notez que ceux-ci testent le « DOM sans version » sur http://dom.spec.whatwg.org/ et non le niveau 2 spécifiquement. Mais, ils sont plus susceptibles de refléter de vrais navigateurs.

J'en ai essentiellement fini avec la fonctionnalité principale, mais j'ai pas mal de problèmes pour garder les plages en direct. J'ai besoin d'exploiter pratiquement toutes les mutations du DOM et je ne suis pas sûr de la meilleure façon de le faire. Dans certains cas, j'ai utilisé les événements de mutation, dans d'autres cas, j'ai enveloppé les méthodes correspondantes sur le prototype.

En ce moment, je me demande comment supprimer des nœuds . Avec suppress observers flag défini, l'événement ne serait pas émis, mais les plages doivent toujours être mises à jour. Quelqu'un a-t-il une idée? Je pense que nous devrions peut-être avoir un système d'événement interne très simple dans tout le DOM pour de telles choses ; il peut également être utilisé pour _attrModified , par exemple.

@adrianlang c'est génial !

Il semble que cela soit lié à notre désir de longue date de cesser d'utiliser les événements de mutation en interne et d'avoir à la place un protocole privé qui ne peut jamais être désactivé. Voir #295. Je sais que c'est beaucoup demander, mais résoudre ce problème pourrait être la voie à suivre pour cela ?

Les commentaires indésirables +1 entraînent le déplacement des fonctionnalités vers l'arrière du backlog. Veuillez utiliser les boutons de vote à la place. Suppression des +1 récents.

Je suis toujours là, d'ailleurs, tout comme mon code à moitié fini. J'espère finir par y arriver.

@adrianheine L'implémentation de TreeWalker qui a atterri vous aide-t-elle à vous rapprocher de la fin de votre implémentation ?

J'utilise parfois Range#createContextualFragment , je ne sais pas vraiment pourquoi cette méthode utile est là (elle mériterait d'être directement sur le document, ou DocumentFragment)

donc j'ai fini par faire ça pour des tests

global.document.createRange = () => ({
  createContextualFragment: str => JSDOM.fragment(str)
});

Mais toute l'API Range serait bien plus

@domenic Je pense que ce que @acusti demandait, c'est quelles sont les prochaines étapes pour que cela soit vérifié ?

J'essaye d'utiliser ceci :
https://github.com/PrismJS/prism/issues/896

Quelqu'un peut-il recommander un chemin alternatif? J'aime l'idée d'avoir un diff mis en évidence et une coloration syntaxique avec Prism. Peut-être même mieux que le surligneur de Github.

Je serais prêt à https://www.patreon.com/ pour une raison de plus de ne plus jamais utiliser SourceTree.

@adrianheine Je pourrais être intéressé à aider si vous partagez votre WIP.

Vous avez des erreurs dans les tests de plaisanterie.

TypeError: document.createRange is not a function

      at createRange (node_modules/popper.js/src/utils/findCommonOffsetParent.js:27:26)
      at findCommonOffsetParent (node_modules/popper.js/src/utils/getReferenceOffsets.js:16:85)
      at Popper.getReferenceOffsets (node_modules/popper.js/src/methods/update.js:29:28)
      at Popper.call (node_modules/popper.js/src/index.js:94:19)
      at node_modules/popper.js/dist/umd/popper.js:51:7

Trouvez le lien ici

Bonjour, des avancées depuis ?

Quand va-t-il sortir? Donc jest pourrait passer à la version la plus récente.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

JacksonGariety picture JacksonGariety  ·  4Commentaires

potapovDim picture potapovDim  ·  4Commentaires

kentmw picture kentmw  ·  3Commentaires

jacekpl picture jacekpl  ·  4Commentaires

josephrexme picture josephrexme  ·  4Commentaires