У тебя много прав, но тебе не хватает нескольких мелочей.
Существует также несколько различных способов выполнения этой задачи. Следующее максимально приближено к вашему исходному коду.
В элементе HTML <head>
очень незначительное изменение.
<script defer src="javascript/rec_images.js"></script>
Почему defer
превышает async
? Ну, , это будет зависеть от того, что вы делаете , но в большинстве случаев и на основе небольшого примера кода, я считаю, что это будет наилучшим соответствием.
В javascript/rec_images.js
, несколько изменений.
/*
Pass the div id to the function to add the image.
*/
function random_ad(divId) {
var random_img = [
{link:"http://www.antares-sellier.com/en/",
image:"javascript/js_images/antares.jpg"},
// add as many as you want
{link:"http://www.scesports.org/",
image:"javascript/js_images/sces.jpg"}
];
var random_number = Math.floor((Math.random()*random_img.length));
var d = document.getElementById(divId);
// always best to check the element was found.
if (d) {
var a = document.createElement("a");
var i = document.createElement("img");
a.setAttribute("href",random_img[random_number].link);
i.setAttribute("src",random_img[random_number].image);
a.appendChild(i);
d.appendChild(a);
}
}
Назад в HTML
, где у вас есть <div id="firstads"></div>
, прямо внизу, перед закрытием </body></html>
, добавьте это:
<script>
window.onload = function() {
// pass the div id to the function
random_ad("firstads");
}
</script>
</body>
</html>
Edit:
Перейдите на использование createElement
, , которое рекомендуется наверняка. Раньше ленился, используя innerHTML
.