#javascript #hyperlink #refresh
Вопрос:
Я не очень хорошо знаком с javascript, поэтому я взял этот код из учебника. Кажется, он отлично работает при первом обновлении. Но когда я добавляю скрипт на другие html-страницы для достижения того же эффекта, он бесконечно повторяется.
<head>
<script type="text/javascript">
// Create an array of the links to choose from:
var links = new Array();
links[0] = "page1.html";
links[1] = "page2.html";
//links[2] = "";
//links[3] = "http://www.apple.com/";
function openLink() {
// Chooses a random link:
var i = Math.floor(Math.random() * links.length);
// Directs the browser to the chosen target:
parent.location = links[i];
return false;
}
</script>
</head>
<body onload="openLink();">
Я хочу иметь возможность обновляться с любой страницы и автоматически отправлять ее на другую страницу/ссылку, выбранную случайным образом из массива.
Ответ №1:
Он делает то, что ты ему велел. В конце концов вам придется добавить туда страницу, которая не ведет ни на какие другие страницы. В противном случае, где он вообще приземлится? Попробуйте это, что в конечном итоге приведет к http://www.randojs.com/
<html>
<head>
<script type="text/javascript">
// Create an array of the links to choose from:
var links = ["page1.html", "page2.html", "http://www.randojs.com/"]; //RANDOJS.COM DOESN'T REDIRECT TO OTHER PAGES
function openLink() {
// Chooses a random link:
var i = Math.floor(Math.random() * links.length);
// Directs the browser to the chosen target:
parent.location = links[i];
return false;
}
</script>
</head>
<body onload="openLink();"></body>
</html>
ИЛИ, если вы прочтете randojs.com веб-сайт и решите, что вам проще использовать его, чем встроенную в javascript функцию Math.random (), вы можете использовать ее в своем проекте следующим образом:
<html>
<head>
<script src="https://randojs.com/2.0.0.js"></script>
<script type="text/javascript">
// Create an array of the links to choose from:
var links = ["page1.html", "page2.html", "http://www.randojs.com/"]; //RANDOJS.COM DOESN'T REDIRECT TO OTHER PAGES
function openLink() {
// Directs the browser to the chosen target:
parent.location = rando(links).value;
}
</script>
</head>
<body onload="openLink();"></body>
</html>
Оба варианта будут работать. Rando.js это просто то, что мне нравится использовать. Это не является обязательным требованием.
Комментарии:
1. Кроме того, «родитель» обычно называется «окном». Поэтому вместо того, чтобы говорить parent.location, вы можете сказать window. местоположение, если вы так решите