Параметр return_value содержит
<textarea>{"id":43,"description":"","item_id":28,"callback":"addNewAttachment","filename":"foo.jpg",,"type":"posts","ext":"jpg","size":145}</textarea>
Следующий код удаляет теги textarea в Firefox, Chrome, поэтому к контенту можно получить доступ в arr [1]. В IE вызывается оповещение («Сбой»).
function addAttachment(returned_value) {
var re = new RegExp ("<textarea>(.+)</textarea>");
var arr = re.exec(returned_value);
if(arr != null && arr.length > 1) {
var json = eval('(' + arr[1] +')');
} else {
alert("Failure");
}
window[json.callback](json);
}
return_value поступает от вызова Ajax. Я использую JQuery.
ТЕСТ
Это тоже не работает:
var re = new RegExp (/<textarea>(.+)<\/textarea>/);
РЕШЕНИЕ
Проблема заключалась в том, что IE получал строчную текстовую строку в верхнем регистре, в то время как firefox получал ее в нижнем регистре.
Следующее регулярное выражение решает его.
var re = new RegExp ('<textarea>(.+)</textarea)>','i');