Текстовое поле содержит простую строку текста. Нет элементов или метаданных.
<textarea name="textarea" id="textarea" cols="45" rows="5"><title>This is the title tag extracted</title><meta name="keywords" content="test 1, test 2, test3" /></textarea>
Это недопустимо, хотя браузеры обычно исправляют его (во всяком случае, до последовательности </textarea
). Вы должны HTML-кодировать <
и &
в содержимом <textarea>
, как и все текстовое содержимое и значения атрибутов:
<textarea name="textarea" id="textarea" cols="45" rows="5"><title>This is the title tag extracted</title><meta name="keywords" content="test 1, test 2, test3" /></textarea>
Затем вы прочитали бы содержимое текстовой области с помощью input.value
, как и с любым другим полем.
Если вы хотите проанализировать это строковое значение в HTML-документе и извлечь его части, вам нужно записать его в элемент, используя element.innerHTML= value
, а затем использовать методы DOM для извлечения данных из элемента:
var el= document.createElement('head');
el.innerHTML= document.getElementById('textarea').value;
alert(el.getElementsByTagName('title')[0].firstChild.value);
alert(el.getElementsByTagName('meta')[0].content);
К сожалению, IE не может этого сделать, потому что не может установить innerHTML
на <head>
или многих других элементах, которые не являются обычными блочными / встроенными элементами. Чтобы заставить его работать в IE, вам нужно будет использовать новый документ, чтобы в него можно было войти (как больно):
<iframe id="iframe"></iframe>
<script type="text/javascript">
var iframe= document.getElementById('iframe');
var idoc= 'contentDocument' in iframe? iframe.contentDocument : iframe.contentWindow.document;
idoc.write(document.getElementById('textarea').value);
idoc.close();
alert(idoc.title);
alert(idoc.getElementsByTagName('meta')[0].content);
</script>
Мне кажется очень маловероятным, что это хорошая идея. Разве вы не можете на серверной стороне сгенерировать страницу, которая передает информацию, необходимую для использования JavaScript, более удобным для JavaScript способом? например. выплюнуть JSON-кодированный поиск как:
<script type="text/javascript">
var info= {
"title": "This is the title tag extracted",
"keywords": ["test 1", "test 2", "test3"]
};
</script>