Il apparaît que la commande « copier », ou aussi les commandes similaires, comme « couper » ou glisser, ne s’appliquent pas seulement qu’à ce qui est directement sélectionné. Elle semblent presque toujours s’appliquer aussi aux éléments parents de ce qui est copié. Le problème est de savoir comment est déterminé la racine au delà de laquelle les éléments parents ne sont plus inclus dans la copie, parce que ce que je constate, est inconstant. Je ne trouve aucune référence à ce sujet. Si des gens en connaissent une, ça m’intéresse.
Juste d’abord un autre cas, pour montrer comment les références ont des lacunes. La commandes « copier » fait souvent une copie en ajoutant un attribut “style”, qui est souvent à rallonge. J’ai cherché sur le site du WHATWG, et je ne trouve rien qui spécifie ce comportement. Pourtant, tous les navigateurs le font depuis longtemps. C’est seulement un standard de fait implicite ou c’est spécifié dans un standard que je n’ai pas trouvé ?
Pour en revenir à la question d’origine et donner un exemple de l’inconstance dont je parlais.
Si par exemple il y a dans une page quelque chose comme <H1>Et ici et là</H1>. Si je sélectionne seulement « ici », ce qui sera copié sera <H1>ici</H1> au lieu du fragment de nœud texte, « ici ». Ça peut se comprendre. Maintenant si j’ai <H1>Et <SPAN>ici et là</SPAN></H1> et que je copie « et », ce n’est pas seulement <SPAN>et</SPAN> qui sera copié, c’est <H1><SPAN>et</SPAN></H1>. C’est ce que je voulais dire en disant que la copie remonte dans les éléments parents. Mais elle ne va pas jusqu’à la racine du document. Si dans l’exemple précédent, H1 est dans un DIV, le résultat sera le même.
Déjà là, il faudrait avoir une spécification pour savoir jusqu’où la copie remonte, et je ne trouve rien. Mais ce n’est pas que ça, c’est surtout que c’est inconstant. Si je fais les mêmes choses que plus haut, mais en plaçant le tout dans un contentEditable, alors la copie remonte toujours jusqu’à l’élément qui est contentEditable. C’est à dire que cette fois, avec le H1 dans un DIV, le DIV sera inclue dans la copie, et même l’élément dans lequel se trouve ce DIV.
Ça pose des problèmes, parce que pour savoir comment interpréter une commande « coller », il faut savoir comment se comporte précisément la commande «copier », et comme dit plus haut, ce n’est même pas constant.
Il existe une référence qui définit ces comportements ou il n’y a pas d’autre choix que de bricoler en jouant aux devinettes ?
Juste d’abord un autre cas, pour montrer comment les références ont des lacunes. La commandes « copier » fait souvent une copie en ajoutant un attribut “style”, qui est souvent à rallonge. J’ai cherché sur le site du WHATWG, et je ne trouve rien qui spécifie ce comportement. Pourtant, tous les navigateurs le font depuis longtemps. C’est seulement un standard de fait implicite ou c’est spécifié dans un standard que je n’ai pas trouvé ?
Pour en revenir à la question d’origine et donner un exemple de l’inconstance dont je parlais.
Si par exemple il y a dans une page quelque chose comme <H1>Et ici et là</H1>. Si je sélectionne seulement « ici », ce qui sera copié sera <H1>ici</H1> au lieu du fragment de nœud texte, « ici ». Ça peut se comprendre. Maintenant si j’ai <H1>Et <SPAN>ici et là</SPAN></H1> et que je copie « et », ce n’est pas seulement <SPAN>et</SPAN> qui sera copié, c’est <H1><SPAN>et</SPAN></H1>. C’est ce que je voulais dire en disant que la copie remonte dans les éléments parents. Mais elle ne va pas jusqu’à la racine du document. Si dans l’exemple précédent, H1 est dans un DIV, le résultat sera le même.
Déjà là, il faudrait avoir une spécification pour savoir jusqu’où la copie remonte, et je ne trouve rien. Mais ce n’est pas que ça, c’est surtout que c’est inconstant. Si je fais les mêmes choses que plus haut, mais en plaçant le tout dans un contentEditable, alors la copie remonte toujours jusqu’à l’élément qui est contentEditable. C’est à dire que cette fois, avec le H1 dans un DIV, le DIV sera inclue dans la copie, et même l’élément dans lequel se trouve ce DIV.
Ça pose des problèmes, parce que pour savoir comment interpréter une commande « coller », il faut savoir comment se comporte précisément la commande «copier », et comme dit plus haut, ce n’est même pas constant.
Il existe une référence qui définit ces comportements ou il n’y a pas d’autre choix que de bricoler en jouant aux devinettes ?