2011-09-17 8 views
7

Mam problem w Firefoksie (innych przeglądarek wydaje się działać prawidłowo) z dynamicznie generowane elementy zawierające contenteditable="true" atrybut:contentEditable + selectAll: Firefox nie pozwoli na wejście klawiatury dynamicznie generowanej zawartości

Gdybym selectAll (dynamicznie lub za pomocą myszy), Firefox nie zezwoli na wprowadzanie danych z klawiatury.

Proszę zapoznać się z moją jsFiddle Example w celach informacyjnych. Wygląda na to, że dotyczy tylko przeglądarki Firefox.

$(document).ready(function(){ 
$('.edit').live('dblclick', function() { 
    document.execCommand('selectAll',false,null); 
}); 

$('#live').append('<p class="edit" contenteditable="true">This content is generated. Firefox will not allow keyboard input when "ALL" is selected.</p>'); 
}); 

EDIT: Oto rzeczywisty Aplikacja pracuję nad (przepraszam kurz): cr8.me/app/ff.html - Co ja chce to kliknąć (kliknij dwukrotnie, aby zaznaczyć cały tekst) notatkę, Kategoria lub Planuj tytuł, aby go edytować. Czy to działa dla nikogo? Może to tylko moja konfiguracja - lub słabe skrypty. Istotne są wiersze 137, 572.

+0

Działa dobrze dla mnie w Firefoksie 3.6. Którą wersję używasz? 6.0? –

+0

Mogę odtworzyć w wersji 6.0.2. – pimvdb

+0

Huh, podaj jeszcze więcej szczegółów (OS) :) Sprawdziłem Fx 3.6.22 (Win XP) i 6.0.2 (Win 7 na maszynie wirtualnej) i oba działają poprawnie. –

Odpowiedz

7

Widocznie Firefox ma problemy z contentEditable na rozpiętość elementów (jestem przy założeniu, że jest to przypadek z innym wyświetlaczem : inline elementów, choć nie byli to testowane). Problem można rozwiązać, po prostu zastępując przęsła za pomocą elementów div. Co więcej - te divy mogą mieć właściwość "display: inline" ustawioną na nich za pomocą css i nadal działa dobrze.

Sprawdź tutaj przykład roboczy: http://jsfiddle.net/6sTJh/5/. Przycisk z etykietą "Dodaj buggy" dynamicznie dodaje zakres z contenteditable i nie działa zgodnie z oczekiwaniami, a przycisk "Dodaj pracę" dołącza div z atrybutem contenteditable i działa dobrze.

Tak jak twoja aplikacja - kiedy wymieniłem wszystkie spolegliwe zawartości na divy, edycja działa dobrze w firefox 3.6 i firefox 6.0.

marginesie: Co do kodu aplikacji - nie używać tego samego identyfikatorana wielu węzłach (jak robisz z tym samym identyfikatorem „Uwaga-tytule” na każdej nuty) lub można uzyskać nieoczekiwane zachowanie z różnych przeglądarek.

Reguła ogólna polega na tym, że na jednej stronie można podać tylko jeden element o danym identyfikatorze. Użyj klasy klasy, aby "zgrupować" więcej niż jeden element i wybrać je później.

+2

+1, dobra odpowiedź. Miałem problemy z contentEditable wcześniej, to było podobne do mojego problemu. – jammypeach

+0

Dziękuję! I dzięki za wskazówkę ID! – Josiah

Powiązane problemy