Effacer une sélection dans Firefox

J'ai cette fonction

function smth() { var container = null; var newContainer = null; if (window.getSelection) { // all browsers, except IE before version 9 alert("first if"); var selectionRange = window.getSelection(); if (selectionRange.rangeCount > 0) { var range = selectionRange.getRangeAt(0); container = range.commonAncestorContainer; newContainer = container; } } else { if (document.selection) { // Internet Explorer alert("second if"); var textRange = document.selection.createRange(); container = textRange.parentElement(); } } if (newContainer) { return newContainer.nodeName; } else { alert("Container object for the selection is not available!"); } } 

Maintenant, après avoir fait ce que je dois faire avec la sélection, je dois l'effacer. J'ai essayé quelques choses, rien n'a fonctionné, des idées?

 document.selection.clear () 

Cela n'a pas fonctionné.

    Pour le navigateur problématique:

     document.selection.empty() 

    Pour les autres navigateurs:

     window.getSelection().removeAllRanges() 

    Voir http://help.dottoro.com/ljigixkc.php

    Remarque: dans le cas où vous choisissez le texte d'un élément d'entrée ou de texte, votre code aurait plus de compatibilité avec le navigateur croisé si vous utilisiez la méthode de sélection d'élément html natif standard de l'entrée ou de la zone de texte.

    Si un élément html ou un élément textarea a été sélectionné en utilisant la méthode native select, utiliser les méthodes proposées ci-dessus ne fonctionne pas sur mon firefox 44.0.2. Ce qui a fonctionné pour cela, et je suppose que fonctionne sur TOUTES LES NAVIGATEURS, exécute le code suivant qui crée un nouvel élément et le sélectionne. Le nouvel élément ne peut pas être display:none ou la visibility:hidden car il n'est pas sélectionné dans mon Firebox, de sorte que l'astuce est de le rendre invisible en forçant tous les attributs de taille à 0\none .

     var tempElement = document.createElement("input"); tempElement.style.cssText = "width:0!important;padding:0!important;border:0!important;margin:0!important;outline:none!important;boxShadow:none!important;"; document.body.appendChild(tempElement); tempElement.select(); /* Use removeChild instead of remove because remove is less supported */ document.body.removeChild(tempElement); 

    Utilisez tinymce.activeEditor.selection.collapse() si cela ne fonctionne pas, utilisez const range = tinymce.activeEditor.dom.createRng(); tinymce.activeEditor.selection.setRng(range) const range = tinymce.activeEditor.dom.createRng(); tinymce.activeEditor.selection.setRng(range)