gpt4 book ai didi

javascript - 我的第一个脚本成功了! - 除了 IE 和 Safari - 请帮忙

转载 作者:行者123 更新时间:2023-11-30 06:05:57 25 4
gpt4 key购买 nike

大家好,我正在尝试自学 Javascript。以下是我的第一个脚本,如果有一些“菜鸟”错误,请多多包涵。 :)

它适用于 FF 和 Chrome,但不适用于 IE 或 Safari。

JSLint 不会通过 for 循环进行处理。

IE 调试器在行 (#37) 上给我一个无效参数错误:

document.getElementById(progBarId).style.width = barWidth + 'px';

我已经确认 barWidth 变量是一个数字。

我用 Google 搜索了 IE 的语法问题,结果一无所获。

非常感谢任何帮助。谢谢。

window.onload = upDtProgBars;

function upDtProgBars() {
var allTags = document.getElementsByTagName("div");

for (var i = 0; i < allTags.length; i++) {
if (allTags[i].className.indexOf("progBar") > -1) {
progBarId = setProgBarWidth(allTags[i].id);
}
// END if
}
// END for loop
function setProgBarWidth(progBarId) {
var today = new Date();
var startDate;
var numWeeks;
var barWidth = 0;
var progBarID = "";
switch (progBarId) {
case "html":
startDate = new Date('5,1,2009')
break;
case "html5":
startDate = new Date()
break;
case "js":
startDate = new Date('1, 1, 2011')
break;
case "csharp":
startDate = new Date('9,3, 2010')
break;
default:
}
// END Switch
if (progBarId != "") {
numWeeks = getNumWeeks(today, startDate);
barWidth = parseInt(numWeeks * 2.76);
document.getElementById(progBarId).style.width = barWidth + 'px';
}
// END if not empty string
}
// END setProgBarWidth
function getNumWeeks(d1, d2) {
var ONE_WEEK = 1000 * 60 * 60 * 24 * 7;
var diffInWeeks = Math.round(Math.abs(d2.getTime() - d1.getTime())) / ONE_WEEK;
return diffInWeeks;
}
// END getNumWeeks
}
// END upDtProgBars

最佳答案

您的日期格式不适合 IE 和 Safari。由于以下示例过程,这间接导致您设置宽度的行上的参数无效:

var date = new Date("garbage"); // Invalid date
var time = date.getTime(); // returns NaN from an invalid date
var barWidth = time * 2.76; // Still NaN

// The following line results in "NaNpx" for the width, which throws an error
document.getElementById(progBarId).style.width = barWidth + 'px';

坚持使用多个参数; 新日期(年、月、日)。示例:

    case "csharp":
startDate = new Date(2010, 8, 3);

请记住,在本例中,月份以 0 开头,因此 8 是九月,而不是八月。另外,不要忘记行尾的分号。

关于javascript - 我的第一个脚本成功了! - 除了 IE 和 Safari - 请帮忙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4716514/

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