Отображение HTML-тегов на странице, формуруемой js-скриптом
Добрый день.
Есть html-страница с формой. В форме есть textarea. В textarea пользователь может вводить текст и html-теги. Ниже формы расположена ссылка. Хочется при нажатии на эту ссылку создавать новую страницу, в которую помещать содержимое textarea. То есть, своего рода preview перед нажатием на submit. Реализовано так: -------- html -----------
<form action="script.php" name=first method="post">
<textarea cols=76 rows=10 name="content"></textarea><br>
<input type="submit" name=edit value="Apply">
</form>
<a href="#" onclick="p2();" >Preview</a>
-------- js -----------
function p2() {
h = open("","","width=400,height=394");
text = document.getElementsByName('content')[0].innerHTML;
h.document.open();
h.document.write(text);
}
Проблема: в отображаемой html-странице теги "не резолвлятся". Пример: пользователь набрал в textarea: Тест. <a href="abc.html">Ссылка</a> Ожидаемое поведение: Тест. Cсылка. Нынешнее поведение: Тест. <a href="abc.html">Ссылка</a> То есть, браузер "не понимает" теги, считая их обычными символами. Вопрос: как сделать так, чтобы html-теги правильно интерпретировались браузером. Спасибо. P.S. Прикол в том, что если вместо строчки
text = document.getElementsByName('content')[0].innerHTML;
я напишу text='Тест. <a href="abc.html">Ссылка</a>'; то все отобразится правильно (теги будут интерпретированы). Но вот в исходном варианте почему-то не работает. Очень надеюсь на вашу помощь. Спасибо. |
Видимо в полученной строке нужно по средством регулярных выражений искать открывающий и закрывающий тег и т.д. и интерпритировать их как
text='Тест. <a href="abc.html">Ссылка</a>' |
Цитата:
|
Цитата:
Цитата:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Tag</title>
<script type="text/javascript">
function p2(){
h = open("","","width=400,height=394");
var txt = document.getElementsByName('content')[0].value;
var view = document.getElementById('view');
view.style.width = '480px';
view.style.border = 'solid 1px #ddd';
view.innerHTML = txt;
h.document.open();
h.document.write(txt);
}
</script>
</head>
<body>
<form action="script.php" name="first" method="post">
<textarea cols=76 rows=10 name="content"></textarea><br>
<input type="submit" name=edit value="Apply">
</form>
<a href="#" onclick="p2();" >Preview</a>
<div id="view"></div>
</body>
</html>
|
Zibba, работает!
Огромное спасибо за помощь! |
))) вот сегодня сталкнулся с такой же неприятностью
Цитата:
узнать о них можно по ссылке http://www.w3schools.com/tags/ref_entities.asp контент до отправки <a>маша ела кашу</a> контент после отправки <a>маша ела кашу</a> в момент получения контента отправки страницей отображения html обработчик понимает что это его коды и обратно их заменяет получая <a>маша ела кашу</a> но.... данная обработка проходит только 1 раз, то есть обработчик не врубается обработать <a>маша ела кашу</a> дальше и выдать ссылку на экране (не компилит результат). Ну можно конечно намудрить и сделать либо парсер самому либо использовать какой то временный буфер для этой <a>маша ела кашу</a> строки - допустим hidden поле, после чего javascript обращался бы к этому полю и пулял результат этот куда либо на страницу дальше. ноо это же ужаасно.))) Вот и хотелось бы как то облегчить задачу восстановления потока по средством javascript. Отсюда вопрос: нет ли в javascript некой функции позволяющей декодировать подобный поток в html - ну я имею ввиду на подобие к примеру функции eval()? |
| Часовой пояс GMT +3, время: 16:21. |