Изменение источника изображения на основе даты - PullRequest
0 голосов
/ 23 ноября 2011

Я пытаюсь изменить изображение целевой страницы в зависимости от месяца и дня.Проблема в том, что когда я реализую этот код, я получаю сообщение об ошибке, вот код:

function kblogo() { 
var d = new Date();
var Today = d.getDate();
var Month = d.getMonth();
var logoSrc;
if (Month == 10 && (Today >= 23 && Today <= 26)) {
    logoSrc = "Images/doodles/KBThanksgiving.png";
} else if (Month == 11 && (Today >= 23 && Today <= 26)) {
    logoSrc = "Images/doodles/KBHolidays.png";
} else if ((Month == 11 && Today >= 30) || (Month == 0 && Today <= 2)) {
    logoSrc = "Images/doodles/KBNewYear.png";
} else if (Month == 6 && (Today >= 3 && Today <= 5)) {
    logoSrc = "Images/doodles/KBJuly4.png";
} else {
    logoSrc = "Images/KB.png";
}
document.getElementById("kbLogo").src = logoSrc;
}

Просто измените код на этот, я скоро его опробую.Любая идея, дайте мне знать.

Я проверил ее через несколько разных валидаторов, нашел разные вещи и исправил их, но он исправлен так же, как я его получил, и все еще вылетает IE и FF, когда я его реализую.

<img id="Logo" src="Images/default.png" alt="KnowledgeBase" width="75%" onload="logo()" />

Над запрошенным тегом img

Ответы [ 3 ]

0 голосов
/ 23 ноября 2011

Что за ошибка?

Убедитесь, что у вас есть логотип и логотип изображения kbLogo. Не очень важно, но зачем вместо этого использовать операнд === ==?

Помни месяц = ​​10 и ноябрь вместо октября.

Я проверил следующий код и у меня работает:

var d = new Date();
var Today = d.getDate();
var Month = d.getMonth();
if (Month == 10 && (Today >= 23 && Today <= 26) ) {
    console.log("Images/doodles/blah1.png");
} else if (Month == 11 && (Today >= 23 && Today <= 26) ) {
    console.log("Images/doodles/blah2.png");
} else if ( (Month == 11 && Today >= 30) || (Month == 0 && Today <= 2) ) {
    console.log("Images/doodles/blah3.png");
} else if (Month == 6 && (Today >= 3 && Today <= 5) ) {
    console.log("Images/doodles/blah4.png");
} else {
    console.log("Images/default.png");
} 
0 голосов
/ 24 ноября 2011

Функция вашего логотипа зациклена - также нет необходимости загружать значение по умолчанию, если значение по умолчанию уже загружено

DEMO

<img id="Logo" src="Images/default.png" alt="KnowledgeBase" width="75%" onload="logo(this)" />


function logo(img) {
  if (img.src.indexOf('default')==-1) return; // already changed 
  var d = new Date();
  var Today = d.getDate();
  var Month = d.getMonth();
  var src;
  if (Month === 10 && (Today >= 23 && Today <= 26)) {
    src = "Images/doodles/blah1.png";
  } else if (Month === 11 && (Today >= 23 && Today <= 26)) {
    src = "Images/doodles/blah2.png";
  } else if ((Month === 11 && Today >= 30) || (Month === 0 && Today <= 2)) {
    src = "Images/doodles/blah3.png";
  } else if (Month === 6 && (Today >= 3 && Today <= 5)) {
    src = "Images/doodles/blah4.png";
  } 
  img.src=src;
}
0 голосов
/ 23 ноября 2011

Во-первых.Ваш <img> имеет id="Logo", но в коде вы пишете document.getElementById("kbLogo")

Второй.Ваш <img> имеет src="mages/default.png", но в коде вы используете "Images/default.png";

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...