los - remove javascript
Borrar una selección en Firefox (3)
Tengo esta funcion
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!");
}
}
Ahora, después de hacer lo que necesito hacer con la selección, necesito borrarla. Probé algunas cosas, nada funcionó, ¿alguna idea?
document.selection.clear ()
esto no funcionó.
Nota: en caso de que esté seleccionando el texto de un elemento de entrada o de área de texto, entonces su código tendrá más soporte para todos los navegadores si utiliza el método de selección de elementos de entrada o de área de texto nativos estándar.
Si se seleccionó una entrada html o un elemento de área de texto usando el método de selección nativo, el uso de los métodos sugeridos anteriormente no funciona en mi Firefox 44.0.2. Lo que funcionó para ello, y supongo que funciona en TODOS LOS NAVEGADORES, es ejecutar el siguiente código que crea un nuevo elemento y lo selecciona. El nuevo elemento no puede estar en la display:none
o visibility:hidden
porque, por lo tanto, no está seleccionado en mi Firebox, por lo que el truco es hacerlo invisible forzando todos los atributos de tamaño a 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);
Para el navegador problemático:
document.selection.empty()
Para otros navegadores:
window.getSelection().removeAllRanges()
Consulte http://help.dottoro.com/ljigixkc.php
Use tinymce.activeEditor.selection.collapse()
si eso no funciona, use const range = tinymce.activeEditor.dom.createRng(); tinymce.activeEditor.selection.setRng(range)
const range = tinymce.activeEditor.dom.createRng(); tinymce.activeEditor.selection.setRng(range)