Mam problem z uzyskaniem wyboru z WebView w systemie Android.Android WebView JavaScript getSelection
Mogę przełączyć WebView w tryb wyboru. Potrafię nawet skopiować tekst do ClipBoard. Ale to, co naprawdę chcę zrobić, to trwale podkreślić wybór.
Pomysł polega na tym, aby ustawić WebView w trybie wyboru. Pozwól użytkownikowi wybrać tekst, a następnie uruchom coś, co podkreśli ten tekst. Mogę go uruchomić poprzez pobranie zaznaczonego tekstu ze schowka, a następnie wyszukanie go w JavaScript i podświetlenie go. Problem występuje, gdy użytkownik wybierze prawdziwe wspólne słowo. Muszę albo je wszystkie podświetlić, albo jakoś zorientować się, gdzie wybór jest właściwy.
Próbowałem tego JavaScript, który działa na iPhone. Funkcja Bu getSelection() nie działa na systemie Android.
function highlight(colour) {
var range, sel;
if (window.getSelection) {
// Non-IE case
sel = window.getSelection();
if (sel.getRangeAt) {
range = sel.getRangeAt(0);
}
document.designMode = "on";
if (range) {
sel.removeAllRanges();
sel.addRange(range);
}
// Use HiliteColor since some browsers apply BackColor to the whole block
if (!document.execCommand("HiliteColor", false, colour)) {
document.execCommand("BackColor", false, colour);
}
document.designMode = "off";
} else if (document.selection && document.selection.createRange) {
// IE case
range = document.selection.createRange();
range.execCommand("BackColor", false, colour);
}
}
Wszelkie sugestie?
Jak masz to, aby skopiować tekst do schowka? Czy robisz to programowo, czy też możesz liczyć na to, że dokonasz wyboru ręcznie. –