ちょっとすべて、 私は自分自身をJavascriptを教えようとしています。以下は私の最初のスクリプトですので、いくつかの "ルーキー"の間違いがある場合は、私に同行してください。 :)私の最初のスクリプトが動作します! - IEとSafariを除いて - 助けてください
FFやChromeでは動作しますが、IEやSafariでは動作しません。
JSLintはforループを処理しません。
IEデバッガは行(#37)で私に無効な引数エラーを与えている:私はbarWidth変数が数値であることが確認されました
document.getElementById(progBarId).style.width = barWidth + 'px';
。
Googleの構文でGoogled 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
'alert(barWidth)'を追加するとどうなりますか? – SLaks
なぜあなたは 'progBarID'と' progBarId'の両方を持っていますか? –
感謝のnikc、私はそれに気付かなかった。 – elobdell