Глядя на использование приложения Google Accuweather для подсчета пыльцы, однако в IE возникает ошибка.
Вот ссылка на прямой скрипт:
http://www -igprev-opensocial.googleusercontent.com / гаджеты / IFR? Exp_rpc_js = 1 & exp_track_js = 1 & URL = HTTP% 3A% 2F% 2Fwhapowllc.googlepages.com% 2Fpollen.xml и контейнер = igprev & просмотра = по умолчанию и языки = еп & страна = США и дезинфицировать = 0 & v = 45408d622dfd6df4 & родитель = http://www.google.com&libs=core:core.io:core.iglegacy:auth -refresh & is_signedin = 1 & Synd = igprev & вид = по умолчанию
Вот сценарий окружающего звука, о котором идет речь:
function setContent(url) { _IG_FetchXmlContent(url, function (response) { if (!response) { msg.createDismissibleMessage("Error loading location data. Please try again later."); echoDefault(); } else if (response.firstChild.nodeName != 'error' && parseInt(response.getElementsByTagName('citylist').item(0).getAttribute('us')) + parseInt(response.getElementsByTagName('citylist').item(0).getAttribute('intl')) + parseInt(response.getElementsByTagName('citylist').item(0).getAttribute('extra_cities'))) { mylocation = response.getElementsByTagName('location').item(0).getAttribute('location'); url = 'http://whapw.accu-weather.com/widget/whapw/weather-data.asp?location=' + mylocation; _IG_FetchXmlContent(url, function (response) { if (!response) { msg.createDismissibleMessage("Error loading pollen data. Please try again later."); echoDefault(); } else { var tree = response.getElementsByTagName('tree').item(0).firstChild.nodeValue; var weed = response.getElementsByTagName('weed').item(0).firstChild.nodeValue; var grass = response.getElementsByTagName('grass').item(0).firstChild.nodeValue; var mold = response.getElementsByTagName('mold').item(0).firstChild.nodeValue; var airquality = response.getElementsByTagName('airquality').item(0).firstChild.nodeValue; var airqualitytype = response.getElementsByTagName('airqualitytype').item(0).firstChild.nodeValue; var airqualitystyle = '';
Ошибка сообщается из этой строки:
} else if (response.firstChild.nodeName != 'error' &&
Отлично работает в FF / Chrome, но в IE я получаю:
Сведения об ошибке веб-страницы Пользовательский агент: Mozilla / 4.0 (совместимый; MSIE 8.0; Windows NT 6.1; Trident / 4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0 ; InfoPath.2; 3M / MSIE 8.0) Отметка времени: пятница, 5 августа 2011 г. 08:01:57 UTC
Сведения об ошибке веб-страницы
Пользовательский агент: Mozilla / 4.0 (совместимый; MSIE 8.0; Windows NT 6.1; Trident / 4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0 ; InfoPath.2; 3M / MSIE 8.0) Отметка времени: пятница, 5 августа 2011 г. 08:01:57 UTC
Message: 'getElementsByTagName(...).item(...)' is null or not an object Line: 986 Char: 12 Code: 0 URI: http://www-igprev-opensocial.googleusercontent.com/gadgets/ifr?exp_rpc_js=1&exp_track_js=1&url=http%3A%2F%2Fwhapowllc.googlepages.com%2Fpollen.xml&container=igprev&view=default&lang=en&country=US&sanitize=0&v=45408d622dfd6df4&parent=http://www.google.com&libs=core:core.io:core.iglegacy:auth-refresh&is_signedin=1&synd=igprev&view=default
Есть идеи, что вызывает эту ошибку?
Заранее спасибо.
Есть некоторые странности в некоторых версиях IE, где item (0) возвращает длину NodeList, а не первый элемент.Вместо этого просто получите доступ к элементам, используя индекс:
...getElementsByTagName('...')[0];