Я столкнулся с тем же сценарием при включении jquery mobile в веб-форму ASP.Net из-за сложного HTML-результата, который я возвращаю.Я смог обеспечить исправление, вернув зашифрованный HTML-код со стороны сервера.Кодированный HTML-код дополнительно кодируется в формате utf8.Этот результат будет окончательно декодирован для вывода в div или любой другой элемент управления по выбору.Это псевдокод:
ASP.NET (стиль vb, используйте любой язык на ваш выбор) должен быть возвращен с
dim Result as string=Server.HTMLEncode(htmlouput)
return Result
Из раздела javascript с jquery
$('#<%=btn.ClientID %>').click(function() {///begin
$.ajax({
type: "POST",
url: "page.aspx/staticmethod",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "html",
success: function(html) {
try {
var out = encode_utf8(html);
$('#result').html(htmlDecode(encode_utf8(html)));
} catch (ex) {
alert(ex);
}
},
error: function(msg) {
//alert error
}
})
return false;
}); //ends
//decode html
function htmlDecode(value) {
if (value) {
return $('<div />').html(value).text();
} else {
return '';
}
}
//remove the 'd' encapsulator and other unwanted characters
function removedencapsulator(value) {
return value.replace('{"d":"', '').replace('"}', '').replace(/(?:\s+)? <(?:\s+)?/g, '<').replace(/(?:\s+)?>(?:\s+)?/g, '>').replace(/\s+/g, ' ');
}
////replace the quote string in the return query
function replacequote(value) {
return value.replace('\u0027', '');
}
//unescape the utf-8 code
function encode_utf8(s) {
var normalizedData = replacequote( removedencapsulator(s));
return unescape(encodeURIComponent(normalizedData.toString()));
}
Надеюсь, это решит вопрос.