Справка по функции запуска при загрузке Javascript

#javascript

#javascript

Вопрос:

Нужна помощь с моим простым скриптом, который должен автоматически нажимать next через 5 секунд.

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>
</title>
<script type="text/javascript">
window.onload = Next() {
    setTimeout(Next() {
        var next = document.getElementById("NEXT");
        window.location.href = next.href;
    }, 5000);
}
</script>

</head>
<body>
<div align="right">
<a id="NEXT" href="http://www.mysite.com/pictures.php?id=34">[ NEXT ]</a>
</div>
</body>
</html>
  

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

1. @Thomas click() не работает 😉

2. @nicklamort какой браузер black magic вы используете?

Ответ №1:

Ваша проблема в том, что .click() работает только с кнопками.

Пока мы над этим работали, давайте использовать ненавязчивый javascript.

 window.onload = function() {
    setTimeout(function() {
        var next = document.getElementById("NEXT")
        window.location.href = next.href;
    }, 5000);
}
  

Живой пример.

Редактировать

 window.onload = Next() {
setTimeout(Next() {
  

Не используйте слово Next() просто используйте function()

Для создания функций вам нужно либо function () , либо function SomeName()

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

1. Привет, Raynos, я добавил ваш скрипт, он все еще не работает. Не уверен, что я вставляю это неправильно.

2. @Ryan ты это завернул <script type="text/javascript"> ... </script> ?

3. я обновил свой оригинальный скрипт, чтобы вы могли его увидеть, любая помощь приветствуется.

4. @Ryan если ваша проблема решена, пожалуйста, нажмите на галочку, чтобы принять ответ 🙂

Ответ №2:

С точки зрения корректности, в вашем скрипте не указано, что это javascript (вам нужно указать, на каком это языке сценариев), а в вашем html технически не указано, что это HTML (в нем отсутствует объявление doctype):

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
  <title>Title of the document</title>
  <script type="text/javascript">
    function next() {
      // '1' dynamically generated when this page was generated by PHP,
      // and will be '2' next time the page loads.
      location = "pictures.php?id=1";
    }
    document.addEventListener("DOMContentLoaded", function(){setTimeout(next,5000);}, false);
  </script>
</head>
<body>
  ...
</body>
</html>
  

Это звучит как педантизм, но IE, в частности, действительно озабочен наличием этих вещей. Без объявления doctype документ, начинающийся с, не будет обрабатываться как HTML-код, но начнет принимать довольно неточные предположения.

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

1. document.addEventListener("DOmContentLoaded" не поддерживается в IE