Учитывая следующий код:
var hostUri = window.location.origin + '/GuestValidator.asmx/GetReservationInfo?resvNo=' + reservationno;
$.get(hostUri, {}, function (response) {
var data = response.documentElement.innerHTML;
}
При выполнении в браузере Chrome ожидаемый результат возвращает строку значений с разделителями-запятыми в свойстве innerHTML объекта documentElement.
Однако, если тот же код выполняется с использованием IE 11 или Edge, в documentElement отсутствует свойство innerHTML.Это возвращается как неопределенное.
Но я могу изменить свой код на response.documentElement.childNodes [0] .data при выполнении в IE и получить тот же результат, который присутствовал в Chrome с использованием innerHTML.
У меня нетпротестировал код с другими браузерами, но я подозреваю, что они, вероятно, также будут иметь различия.
Так как этот код может быть пересмотрен, чтобы получить значение innerHTML в Chrome во всех браузерах без необходимости выполнения отдельного кода на основебраузер?
РЕДАКТИРОВАНИЕ ДЛЯ ЯРКОСТИ
Это выдержка из веб-метода.Он возвращает общий список типов строки.Не имеет значения, возвращаю ли я объект JSON.
var arry = new List<string>();
var blockedOrderDays = 3;
var blockedDay = String.Empty;
var noOrderDays = String.Empty;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
var svclient = new ServiceClient();
var result = svclient.GetReservation(reservationNo);
var details = result.Reservation.ArrivalDate;
var arrivalDt = formatDate(details);
while(blockedOrderDays != 0)
{
blockedDay = formatDate(details.AddDays(-blockedOrderDays));
arry.Add(blockedDay);
noOrderDays += blockedDay + ",";
-- blockedOrderDays;
++x;
}
arry.Add(arrivalDt);
noOrderDays = noOrderDays + arrivalDt;
return noOrderDays;