2012-12-08 34 views
6

Mężczyzna Mam div z atrybutem contentEditable na true!jak wyłączyć elementy w contenteditable div?

Zrobiłem to, ponieważ chciałem, aby zachowywał się jak tekst, który zmienia swój wzrost zgodnie z tekstem! Działa Idealne

Ale kiedy skopiować hiperłącze i wklej go w moim div zamiast zwykłego tekstu mieć elementu zaczepienia ... To samo z drugiej jeśli wybiorę jakąś część każdej strony i wkleić go w tym contenteditable div pokazuje cały HTML. Chcę, aby ten element wyświetlał tylko zwykły tekst i wyłączał wszystkie elementy w nim zawarte!

robocza Fiddle: http://jsfiddle.net/4ctVx/

Wystarczy skopiować dowolny kod HTML w nim i będzie to również pokazać youdiv z tym HTML. Chcę, aby to zostało wyłączone, a div aby pokazać tylko zwykły tekst!

+0

Aby być czystym dla kogokolwiek innego, jeśli skopiujesz Richtext z obrazami, a nie tekst i wkleisz go do div, zobaczysz renderowany HTML. – gideon

+0

Aquib, dlaczego nie używasz pola tekstowego? – gideon

+0

Istnieje wiele wtyczek, których możesz użyć do zwiększenia wysokości textarea. – charlietfl

Odpowiedz

3

Po dodaniu detektora zdarzeń do edytowalnej zawartości div można użyć jQuery, aby zamienić RichText na PlainText. Złapałem słuchacza zdarzeń od balupton tutaj: https://stackoverflow.com/a/6263537/1887483.

$('[contenteditable]').live('focus', function() { 
    var $this = $(this); 
    $this.data('before', $this.html()); 
    return $this; 
}).live('blur keyup paste', function() { 
    var $this = $(this); 
    if ($this.data('before') !== $this.html()) { 
     $this.data('before', $this.html()); 
     $this.trigger('change'); 
    } 
    return $this; 
}); 
//use this jQuery snippet to swap HTML for Text. 
$('.editableContent').live('change', function() { 
    $(this).html($(this).text()); 
    alert('changed'); 
});​ 
+0

człowiek działa, ale jest opóźniony! masz na to poprawkę? –

+0

Moja odpowiedź brzmi bardziej "w teorii, jeśli chcesz ograniczyć to, co pole edycji treści może zaakceptować, to jest to, czego chcesz użyć". Odpowiedź poniżej, autorstwa abhishek77in, jest właściwym sposobem rozwiązania tego problemu. Aby uzyskać bardziej płynną opcję, pozwól mi polecić tę wtyczkę jQuery autogrow: https://github.com/ultimatedelman/autogrow –

+0

Awesome! człowiek ten plugin jest kompatybilny ze wszystkimi tekstami dzięki Allahowi i pozdrawiam cię, że zostałeś wybrany, aby mi pomóc! :) –

Powiązane problemy