Proste pytanie, na które nie mogę znaleźć odpowiedzi: jak za pomocą JavaScript (lub jQuery) odznaczyć dowolny tekst, który może być zaznaczony na stronie internetowej? Użytkownik EG klika i przeciąga, aby podświetlić fragment tekstu - chcę mieć funkcję deselectAll (), która czyści ten wybór. Jak mam go napisać?
Dzięki za pomoc.
javascript
jquery
man1
źródło
źródło
document.selection
implikuje istnienieempty()
metody. Testowałeś tę metodę w każdym innym przypadku, więc równie dobrze możesz przetestować ją równieżempty
w ostatnim przypadku.window.getSelection().removeAllRanges();
działa dobrze w IE (edge) i Safari.Najlepiej przetestować funkcje, które chcesz bezpośrednio:
źródło
Stan spraw związanych z usunięciem selekcji 2014
Zrobiłem własne badania. Oto funkcja, którą napisałem i używam obecnie:
Zasadniczo
getSelection().removeAllRanges()
jest obecnie obsługiwany przez wszystkie nowoczesne przeglądarki (w tym IE9 +). Jest to oczywiście właściwa metoda posuwania się naprzód.Uwzględniono problemy ze zgodnością:
getSelection().empty()
document.selection.empty()
Aktualizacja
Prawdopodobnie dobrym pomysłem jest zamknięcie tej funkcji wyboru do ponownego wykorzystania.
Stworzyłem to wiki społeczności, abyście mogli dodawać do tego funkcje lub aktualizować rzeczy w miarę ewolucji standardów.
źródło
Oto akceptowana odpowiedź, ale w dwóch wierszach kodu:
Jedynym sprawdzić nie robię to na istnienie removeAllRanges - ale AFAIK nie jest przeglądarką, która ma albo
window.getSelection
czydocument.selection
jednak nie ma albo.empty
czy.removeAllRanges
dla tej nieruchomości.źródło
Funkcja window.getSelection () umożliwia dostęp do zaznaczonego tekstu, a stamtąd można zrobić kilka rzeczy, aby nim manipulować.
Czytaj więcej: Deweloper Mozilla DOM Selection
źródło
dodaj to do swojego skryptu, aby zapobiec klikaniu prawym przyciskiem i wybieraniu tekstu.
Wyjątki można dodać do zmiennej „om”.
źródło