Кажется, что все мертвы, используя регулярные выражения, поэтому я решил, что я пойду другим путем и отвечу на второй запрос, который у вас был.
Теоретически можно проанализировать результат вашего AJAX как xmlDocument. Есть несколько шагов, которые вы, вероятно, захотите принять, если хотите, чтобы это работало.
- Использование библиотеки. Я рекомендую jQuery
- Если вы используете библиотеку, вы должны должны убедиться, что тип ответа соответствует xml-типом!
- Убедитесь, что вы тщательно протестировали во всех целевых браузерах. Вы сработаете.
Это, как говорится, я создал быстрый пример на jsbin. Он работает как в IE, так и в Firefox, к сожалению, чтобы заставить его работать, мне пришлось свернуть собственный объект XMLHttpRequest.
View the example source code here
(серьезно, этот код некрасиво. Это стоит использовать библиотеку и установки типа пантомимы правильно ...)
function getXHR() {
var xmlhttp;
//Build the request
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else if (window.ActiveXObject) {
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
} else {
alert("Your browser does not support XMLHTTP!");
}
//Override the mime type for firefox so that it returns the
//result as an XMLDocument.
if(xmlhttp.overrideMimeType) {
xmlhttp.overrideMimeType('application/xhtml+xml; charset=x-user-defined');
}
return xmlhttp;
}
function runVanillaAjax(url,functor)
{
var xmlhttp = getXHR();
xmlhttp.onreadystatechange=function() { functor(xmlhttp); };
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}
function vanillaAjaxDone(response) {
if(response.readyState==4) {
//Get the xml document element for IE or firefox
var xml;
if ($.browser.msie) {
xml = new ActiveXObject("Microsoft.XMLDOM");
xml.async = false;
xml.loadXML(response.responseText);
} else {
xml = response.responseXML.documentElement;
}
var textarea = document.getElementById('textarea');
var bodyTag = xml.getElementsByTagName('body')[0];
if($.browser.msie) {
textarea.value = bodyTag.text;
} else {
textarea.value = bodyTag.textContent;
}
}
}
function vanillaAjax() {
runVanillaAjax('http://jsbin.com/ulevu',vanillaAjaxDone);
}
Почему бы вам не сделать это с помощью DOM? –
Почему бы не опубликовать это как ответ, Джордж? –
Я сделал, а затем удалил комментарий. Я тоже колебался, так как (он) он сказал (а), что хочет регулярное выражение. – geowa4