Je veux sélectionner du texte en envoyant location/anchorOffset et length/offset en utilisant Javascript Voici mon code
var node = document.getElementById("content");
var range = document.createRange();
range.setStart(node, 0);
range.setEnd(node, 4); // here 0 and 4 is my location and length for the selection
// if my string is "This is test string" in my case its must select "This"
var selection = window.getSelection();
selection.removeAllRanges();
selection.addRange(range);
Mais le problème est avec range.setStart et range.setEnd ne fonctionne pas comme je l'attends
Les méthodes setStart()
et setEnd()
de DOM Range sont bien spécifiées, vous pouvez donc trouver la réponse en lisant la spécification ou MDN .
Pour résumer, si vous souhaitez spécifier une limite de plage en termes de décalages de caractères, vous devez traiter avec un nœud de texte plutôt qu'avec un élément. Si votre élément contient un seul nœud de texte, la modification de la première ligne de votre code comme suit fonctionnera:
var node = document.getElementById("content").firstChild;
Voici une bonne solution si vous essayez de sélectionner un jeu de résultats jquery
var $newSelection = $('.someElements');
var selection = window.getSelection();
var range = document.createRange();
range.setStartBefore($newSelection.first()[0]);
range.setEndAfter($newSelection.last()[0]);
selection.removeAllRanges();
selection.addRange(range);