Как я могу создать кнопку, которая ссылается на случайную страницу?

#javascript #html

#javascript #HTML

Вопрос:

Я пытаюсь создать кнопку, которая ссылается на случайную страницу на моем простом веб-сайте. У меня возникают проблемы с изменением «href» и переходом на страницу по щелчку.

Вот JavaScript, который я написал:

 document.addEventListener("DOMContentLoaded", function(){
let arrayofpages = ["my_cat.html","about_me","art.html","index.html"]
let randompage = arrayofpages[Math.floor(Math.random()*arrayofpages.length)];

document.addEventListener("click",function(){
document.getElementById("lucky_btn").href = "${randompage}";
document.getElementById("lucky_btn").innerHTML = "random page";
});
 

Комментарии:

1. » $ {randompage} » отсутствует в вашем списке, используйте обратные кавычки вместо двойных кавычек при написании литерала шаблона.

2. спасибо, я внес эту корректировку, но она по-прежнему не работает:(

3. .href = randompage

4. Пожалуйста, не редактируйте вопрос в соответствии с комментариями или ответами, такое редактирование делает недействительными существующие ответы.

5. Кроме того, ваш код, похоже, отлично работает с обратными ссылками.

Ответ №1:

Строка «$ {randompage}» — это буквально просто строка, которая говорит "${randompage}" . Вместо этого используйте обратные ссылки:

 `${randompage}`  // This creates a string out of the variable randompage
 

Но в вашем случае, поскольку вы ничего не делаете со строкой, самый простой способ — использовать переменную напрямую:

 document.getElementById("lucky_btn").href = randompage;
 

В общем, литералы шаблонов более полезны для вставки переменных в более длинную строку, например

 let name = 'Sarah';
let quality = 'great';
let message = `Hello ${name}, have a ${quality} day`;
 

Ответ №2:

Небольшая ошибка в вашем коде. вы использовали двойные кавычки "" вместо `` обратных меток.

Эта строка

 document.getElementById("lucky_btn").href = "${randompage}";
 

должно быть

 document.getElementById("lucky_btn").href = `${randompage}`;
 

Ответ №3:

Я обнаружил ошибку, которая вызывала проблему, не перенаправляя на случайную страницу:

вместо

 document.getElementById("lucky_btn").href = "${randompage}";
 

там, где я должен был использовать обратные ссылки, я изменил код на:

  document.location.href = `${randompage}`;
 

и это решило проблему!