Piszę dodatek do Firefoksa uruchamiany za każdym razem, gdy podświetlone jest słowo. Potrzebuję jednak skryptu, który wykrywa, kiedy słowo jest podświetlone, i utknąłem. Przykładem może być nytimes.com (podczas czytania artykułu i podświetlenia słowa pojawia się ikona referencyjna). Jednak skrypt nytimes.com jest bardzo złożony. Mam 16 lat i niewiele programisty, więc jest to zdecydowanie poza moją ligą.Javascript: Jak wykrywać, czy słowo jest podświetlone?
Odpowiedz
Oto scenariusz:
<script language=javascript>
function getSelText()
{
var txt = '';
if (window.getSelection)
{
txt = window.getSelection();
}
else if (document.getSelection)
{
txt = document.getSelection();
}
else if (document.selection)
{
txt = document.selection.createRange().text;
}
else return;
document.aform.selectedtext.value = txt;
}
</script>
<input type="button" value="Get selection" onmousedown="getSelText()">
<form name=aform >
<textarea name="selectedtext" rows="5" cols="20"></textarea>
</form>
Courtesy of Code Toad:
http://www.codetoad.com/javascript_get_selected_text.asp
W twoim przypadku, to chcesz nazwać ten skrypt po dokonaniu wyboru, a następnie może przetwarzać go w dowolny sposób, za pomocą żądania AJAX, aby uzyskać odpowiednie informacje, na przykład, jak to prawdopodobnie robi NYtimes.
Najprostszym sposobem wykonania tej czynności jest wykrycie zdarzeń w dokumentach i sprawdzenie, czy wybrano dowolny tekst. Następujące będą działać we wszystkich głównych przeglądarkach.
Przykład: http://www.jsfiddle.net/timdown/SW54T/
function getSelectedText() {
var text = "";
if (typeof window.getSelection != "undefined") {
text = window.getSelection().toString();
} else if (typeof document.selection != "undefined" && document.selection.type == "Text") {
text = document.selection.createRange().text;
}
return text;
}
function doSomethingWithSelectedText() {
var selectedText = getSelectedText();
if (selectedText) {
alert("Got selected text " + selectedText);
}
}
document.onmouseup = doSomethingWithSelectedText;
document.onkeyup = doSomethingWithSelectedText;
Ale co, jeśli chcesz wykryć, czy wybrane jest określone słowo? Powiedzmy, że masz 'foo' na stronie wiele razy, a użytkownik wybiera' foo' skąd wiesz, które ze słów wybrał użytkownik? – Jespertheend
Korzystanie rangy.js i jQuery:
$('#elem').on('keyup mouseup', function(){
var sel = rangy.getSelection()
if (sel.rangeCount === 0 || sel.isCollapsed) return
alert(sel.toString())
})
użyć poniższy kod
(function() {
"use strict";
var showSelectedText = function (e) {
var text = '';
if (window.getSelection) {
text = window.getSelection();
} else if (document.getSelection) {
text = document.getSelection();
} else if (document.selection) {
text = document.selection.createRange().text;
}
console.log(text.toString());
}
document.onmouseup = showSelectedText;
if (!document.all) {
document.captureEvents(Event.MOUSEUP);
}
})();
- 1. jak sprawdzić, czy słowo jest palindromem?
- 2. przechowywać iPhone UIButton podświetlone
- 3. Jak wykrywać obsługę JSON w javascript?
- 4. Jak wykrywać kliknięcia myszy w JavaScript?
- 5. Domyślne słowo w JavaScript
- 6. Jak wykrywać sukces akcji Facebook? z JavaScript
- 7. Jak wykrywać orientację urządzenia za pomocą JavaScript?
- 8. JavaScript zastrzeżone słowo "zaprogramowany"
- 9. JavaScript "argumenty" Słowo kluczowe
- 10. JavaScript uzyskać słowo przed kursorem
- 11. JavaScript `of` słowo (na ... pętli)
- 12. Zastępowanie podświetlone zaznaczenie w UIPickerView
- 13. Jak wykrywać, czy XMLHttpRequest obsługuje responseType = "arraybuffer"?
- 14. Jak wykrywać tryb uwierzytelniania SharePoint 2013/2016 w JavaScript
- 15. Jak sprawdzić, czy słowo jest japoński lub angielski PHP
- 16. Jak wykrywać zablokowane filmy wideo z YouTube za pośrednictwem javascript
- 17. Jak wykrywać zatrzymanie myszy
- 18. Jak wykrywać domyślną wyszukiwarkę Chrome
- 19. Jak wykrywać zamknięcie przeglądarki?
- 20. Jak wykrywać gest ręki w kamerce internetowej przy użyciu javascript?
- 21. Jak sprawdzić, czy istnieje słowo w zdaniu
- 22. Jak wykrywać zatrzymanie myszy?
- 23. Co oznacza słowo kluczowe "natywna" w JavaScript?
- 24. UTF-8 słowo granica regex w javascript
- 25. Jak wykrywać nieużywane zmienne w Maszynopisie?
- 26. iOS usunąć słowo z UITextView
- 27. Jak wykrywać instancję anonimowej klasy?
- 28. Jak wykrywać naciśnięty klawisz w TypeScript?
- 29. Jak wykrywać puste miejsce na stronie internetowej?
- 30. Jak wykrywać dotyk na NSTextAttachment
Ciągle widzę tego kodu na SO, a to źle: okno '. getSelection() 'zwraca obiekt' Selection', a nie ciąg znaków. –
@ Nie chroń całej prawdy. Obiekt ma metodę toString(). Kiedy łańcuch jest oczekiwany, zwracany jest ciąg znaków, w przeciwnym razie, gdy wskażesz obiekt, zostanie zwrócony. https://developer.mozilla.org/en-US/docs/Web/API/Window/getSelection –
@TedCohen: To prawda, że obiekt 'Selection' ma rozsądną implementację' toString() ', ale reszta twojego komentarz nie ma sensu: obiekt 'Selection' jest zawsze zwracany, jeśli istnieje' window.getSelection' (co robi we wszystkich nowoczesnych przeglądarkach). –