gpt4 book ai didi

javascript - IE JS 兼容性 - 在 FF 中工作?

转载 作者:行者123 更新时间:2023-11-29 22:29:39 32 4
gpt4 key购买 nike

以下代码在 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 问题,因为我有这个脚本的以前版本(我决定重写它,因为它是可怕的代码和一些奇怪的程序混搭,只是纯粹的 bodging)在 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,按预期工作 FireFox, working as intended

Internet Explorer, b0rked Internet Explorer, b0rked

有人知道什么可能会破坏 IE 吗?

提前致谢。

最佳答案

好的!我发现了问题。

IE 不喜欢这段代码:

    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);
}
}

当我将其更改为这种格式时:

        for (var i = 0; i < data[0].groups.length; i++) {
if (data[0].groups[i].name.substr(0,4) == "LEAP") {
AssignPoints.Limit = data[0].groups[i].name.substr(5,3);
}
}

它在 FF 和 IE 中按预期工作。

关于javascript - IE JS 兼容性 - 在 FF 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7673343/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com