Следующий код отображается так, как задумано в FireFox, но не отображается вообще в Internet Explorer (v8).
// getLimits init
Frog.API.get('users.getInfo',
{
'params': {'id': UWA.Environment.user.id, 'details':'groups' },
'onSuccess': AssignPoints.getLimit,
'onError': function(err) { alert(err); }
});
...
// work out the user's limit, and how many points they've spent this week
// use LEAP library if necessary
AssignPoints.getLimit = function(data) {
for (var i in data[0].groups) {
if (data[0].groups[i].name.indexOf("LEAP") != -1) {
AssignPoints.Limit = data[0].groups[i].name.substr(5,3);
}
}
/************** IT'S THIS LINE ONWARDS WHERE THE ALERTS SEEM TO BREAK IN IE */
if (AssignPoints.Limit == 0) {
AssignPoints.Specialist = true;
}
UWA.Data.getJson(AssignPoints.URL + "?cmd=getLimitsAndTotals&Giver_ID=" + AssignPoints.CurrentUser, AssignPoints.getPointsSpent);
}
AssignPoints.getPointsSpent = function(data) {
AssignPoints.SpentWeekly = data.SpentWeekly;
AssignPoints.SpentTotal = data.SpentTotal;
AssignPoints.displayLimitAndTotals();
}
// display data from getLimitAndTotals
AssignPoints.displayLimitAndTotals = function() {
var LimitsAndTotalsHTML = '<h2>Points Allocation</h2>';
if (AssignPoints.Specialist == false) {
LimitsAndTotalsHTML += '<ul><li>Weekly Limit: <strong>' + AssignPoints.Limit + '</strong></li>';
} else {
LimitsAndTotalsHTML += '<ul><li>Weekly Limit: <strong>Unlimited</strong></li>';
}
LimitsAndTotalsHTML += '<li>Spent this week: <strong style="color:#990000;">' + AssignPoints.SpentWeekly + '</strong></li>' +
'<li>Spent total: <strong>' + AssignPoints.SpentTotal + '</strong></li></ul>';
$('div#limits').html(LimitsAndTotalsHTML);
}
РЕДАКТИРОВАТЬ: CSS & HTML
Я не думаю, что это проблема CSS / HTML, так как у меня есть предыдущая версия этого скрипта (которую я решил переписать, потому что это был отвратительный код и некоторая странная смесь процедурного и просто чистого текста), который правильно отображается в IE используя точно такой же HTML и CSS.
#total_container
{ overflow: hidden; width: 870px; }
#groups
{ width: 250px; float: left; padding: 10px; }
#right_container
{ width: 580px; float: left; padding: 10px; }
span.check
{ font-size: 10px; color: #666; }
span.err
{ color: red; font-weight: 700; }
#limits, #search_div
{ width: 270px; float:left; padding: 0 10px; }
#groups li, #groups ul
{ list-style-type: none; background: none; margin: 0; padding: 0; }
#groups li a
{ background-color: #999; color: #eee; display: block; margin: 5px 0; border: #666; padding: 8px 2px 8px 10px; width: 243px; }
#groups li a:hover
{ background-color: #990000; }
HTML-код просто <div id="limits"></div>
, а JS обновляет его.
// РЕДАКТИРОВАТЬ
ВТОРОЕ РЕДАКТИРОВАНИЕ: ПРЕДУПРЕЖДЕНИЯ
Я пытался вставить в код случайные оповещения. В IE в цикле for (var i in data[0].groups)
оповещения работают. Если я помещаю предупреждение в любой точке после этого цикла for, предупреждение не появляется вообще, независимо от того, использую ли я имя переменной или случайную строку, такую как "test"
.
В FF оповещения работают независимо от расположения внутри любой функции.
** // ВТОРОЕ РЕДАКТИРОВАНИЕ **
FireFox , работает по назначению
Internet Explorer, b0rked
Кто-нибудь знает, что может сломать IE?
Заранее спасибо.