Muszę mieć możliwość renderowania niektórych tagów HTML wewnątrz obszaru tekstowego (mianowicie <strong>, <i>, <u>, <a>), ale obszary tekstowe interpretują ich zawartość tylko jako tekst. Czy istnieje łatwy sposób na zrobienie tego bez polegania na zewnętrznych bibliotekach / wtyczkach (używam jQuery)? Jeśli nie, czy znasz jakąś wtyczkę jQuery, której mógłbym użyć do tego?
javascript
jquery
html
textarea
Kodujący mnich
źródło
źródło
Odpowiedzi:
Nie można tego zrobić z plikiem
textarea
. To, czego szukasz, to edytowalny element div, który można bardzo łatwo zrobić:jsFiddle
źródło
contenteditable
jest atrybutem wyliczanym, a nie atrybutem boolowskim (istnieje równieżinherit
stan oraztrue
ifalse
) i myślę, że oznacza to, że określenie wartości jest obowiązkowe, chociaż nie mogę znaleźć ostatecznego fragmentu specyfikacji, aby to potwierdzić. Wydaje się jednak, że MDN się z tym zgadza .contenteditable
bez wartości jako to samo cocontenteditable=""
, co z kolei jest tym samym cocontenteditable="true"
.textarea
. Wpisanie<strong>someting</strong>
na skrzypce pozostawia dokładnie ten tekst. Kod HTML nie jest stosowany.W przypadku edytowalnego elementu div możesz użyć metody
document.execCommand
( więcej szczegółów ), aby w łatwy sposób zapewnić obsługę określonych tagów i inne funkcje.źródło
Ponieważ powiedziałeś tylko render, tak, możesz. Możesz zrobić coś w ten sposób:
textarea
będzie renderował html! Poza miganiem podczas zmiany rozmiaru, niemożnością bezpośredniego użycia klas i koniecznością upewnienia się, że element div w elemenciesvg
ma taki sam format jak wtextarea
przypadku prawidłowego wyrównania daszka, to działa!źródło
Dodatek do tego. Możesz używać encji znakowych (takich jak zmiana
<div>
na<div>
), a renderuje się w obszarze tekstowym. Jednak po zapisaniu wartością pola tekstowego jest renderowany tekst . Więc nie musisz dekodować. Właśnie przetestowałem to w różnych przeglądarkach (tj. Z powrotem do 11).źródło
<textarea> check for url <B>http://localhost/Dashboard.aspx</B> <BR> Tool Started at <B>11/10/2015 3:56:58 AM</B> <BR> .... </textarea>
nie wyświetla się jako HTML. Jestem na Chrome 46.Mam ten sam problem, ale w odwrotnej kolejności i następujące rozwiązanie. Chcę umieścić kod HTML z elementu DIV w obszarze tekstowym (aby móc edytować niektóre reakcje na mojej stronie internetowej; chcę, aby obszar tekstowy znajdował się w tej samej lokalizacji).
Aby umieścić zawartość tego div w obszarze tekstowym, którego używam:
źródło
spróbuj tego przykładu
źródło
Jest to możliwe,
<textarea>
ponieważ jedyne, co musisz zrobić, to użyć edytora Summernote WYSIWYGinterpretuje znaczniki HTML wewnątrz textarea (mianowicie
<strong>
,<i>
,<u>
,<a>
)źródło