2014-10-20 15 views
5

Do edycji tekstu sformatowanego używam interfejsu UIWebView, w którym ładuję lokalną zawartość html za pomocą elementu div o wartości contenteditable. Gdy użytkownik naciska niektóre klawisze na klawiaturze, chcę wykryć zmiany zawartości w tym elem, zmienić odpowiednio rozmiar i przewinąć poprawnie, aby ustawić kursor nad klawiaturą.Wykryj wklejanie sugestii iOS 8

jestem w stanie to zrobić przy użyciu programu obsługi zdarzeń onkeyup:

<div id="contents" onkeyup="keyup()" onpaste="paste()" contenteditable="true">...</div>

w iOS 8 Klawiatura ma teraz panel Quicktype z niektórych sugerowanych słów szybko wkleić do obszaru edycji. Jak wykryć akcję wklejania tekstu sugestii do div?

Obsługa zdarzeń podobna do onkeyup nie pomaga, ponieważ tekst jest wklejany bez naciskania przycisków klawiatury, onpaste wydarzenie nie zostanie wywołane. Próbowałem również zaimplementować MutationObserver, aby wykryć zmiany DOM, gdy coś jest wklejane - nie pomaga również.

Staram się znaleźć działające rozwiązanie. Każda rada jest doceniana. Dzięki!

Odpowiedz

2

W mobilnym Safari słowa kluczowe w iOS 8 Quicktype uruchamiają dwa (być może identyczne?) Wydarzenia: input.

Spróbuj w konsoli programisty:

$('input[type=text]').on("input", console.log.bind(console, "input!")); 

W UIWebView nie próbowałem ...