다음 코드는 FireFox에서 의도 한대로 표시되지만 Internet Explorer (v8)에서는 전혀 표시되지 않습니다.IE JS 호환성 - FF로 작업 하시겠습니까?
// 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 문제를 생각하지 않습니다 나는 (내가 결정하는이 스크립트의 이전 버전을 가지고 그것은 똑같은 HTML & CSS를 사용하여 정확하게 IE에서 올바르게 표시되는 끔찍한 코드와 절차 적이며 순수한 침입의 이상한 매쉬업 이었기 때문에 다시 작성했습니다.
#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가이를 업데이트합니다.
// EDIT
SECOND 편집 : 에이전트
나는 코드에 임의의 경고를 넣어 시도했습니다. IE에서는 for (var i in data[0].groups)
루프에서 경고가 작동합니다. 그 for 루프 이후에 아무 곳이나 경고를하면, 변수 이름이나 "test"
과 같은 임의의 문자열을 사용하는지 여부에 관계없이 경고가 전혀 표시되지 않습니다.
FF에서는 경고가 두 기능의 배치에 관계없이 작동합니다. 구성
인터넷 익스플로러로 일하고 ** // SECOND 편집 **
파이어 폭스
는, 을 b0rked
사람이 IE를 파괴 할 수있는 무엇을 알고 있나요?
미리 감사드립니다.
아마 이것은 javascript보다는 html과 css와 관련이 있다고 가정합니다. html을 제공 할 수 있습니까? 어쩌면 jsfiddle.net일까요? – jackJoe
JSFiddle은 내가 작업중인 Frog API 때문에 작동하지 않습니다. 나는 CSS로 원래 게시물을 업데이트 하겠지만 동일한 HTML/CSS를 사용하여 IE에서 올바르게 표시되는 파일의 원본 버전을 가지고 있습니다 (끔찍한 코드이기 때문에 다시 작성했습니다). – dunc
그리고 렌더링 된 html을 저장하면 IE8에서 올바르게 표시됩니까? 또한 js 오류가 발생합니까? – jackJoe