Как оптимизировать и прилепить скрипт к кнопке?

Тема в разделе "JavaScript", создана пользователем ZmeYEditioN, 12 окт 2019.

Метки:
  1. ZmeYEditioN

    ZmeYEditioN Писатель

    Регистр.:
    18 сен 2019
    Сообщения:
    4
    Симпатии:
    0
    Доброго времени суток.
    Есть вот такой скрипт
    Код:
    var cupIDs = [93,105,117,129,141];
    var c = 0;
    function cupquest() {
    if (c<cupIDs.length) {
      document.getElementById("cupFrame").src='https://fotostrana.ru/sports/ajax/minigameAward/?&gameId='+cupIDs[c]+'&getfree=1';
      document.getElementById("content").innerHTML="<h1>"+(c+1)+"</h1>";
      c++;
    } else {
      c=0;
      document.getElementById("content").innerHTML="<h1>Бонусы кубков собраны</h1>";
    }
    }
    Мне нужно прикрутить его к запуску по клику. На данный момент добавлен вот так
    HTML:
    <div id="container">
        <div id="content"></div>
        <iframe onclick="javascript:cupquest();" id="cupFrame" style="display:table;">
    </iframe></div>
    Вылазит контейнер, и оповещение, только при входе на сайт. Так-же добавлен запуск в виде кнопки
    HTML:
    <div class="sButton surfMinigamePlay" onclick="cupquest()"><strong>Задания кубка</strong></div>
    В итоге - при входе на сайт, он запускается автоматически. А так-же запускается при нажатии на кнопку, как положено. Если я ставлю onclick - то надо 5 раз тыкать (5 заданий), он уже полностью не грузится.

    Необходимо убрать автозапуск при загрузке страницы, и оставить запуск именно по нажатию кнопки. Уже давно с ним борюсь, всё никак не получается. Может подскажет кто? Как или скрипт оптимизировать, или то - что есть перекрутить)

    Думаю тут проблема в самом скрипте. Так как сам в этом не шарю практически. По мимо этого, есть еще похожие, для выполнения других заданий, но опять-же видимо из за кривоватости скрипта, пришлось их по разным файлам разделять, так как в 1 файле, нифига не работает)
     
  2. ZmeYEditioN

    ZmeYEditioN Писатель

    Регистр.:
    18 сен 2019
    Сообщения:
    4
    Симпатии:
    0
    Не так немного код написал.
    В iframe и в дивку, он вставлен через onload.
    А нужно сделать onclick - но чтобы сам скрипт полностью прогружался, а не по 1 ссылке)
     
  3. ZmeYEditioN

    ZmeYEditioN Писатель

    Регистр.:
    18 сен 2019
    Сообщения:
    4
    Симпатии:
    0
    По аналогии сделал авто-прохождение других заданий, например вот
    Код:
    var gameIDs = [0,2,4,5,6,7,37,38,42,43,44,59,108];
    var d = 0;
    
    function dailyquest() {
    if (d<gameIDs.length) {
      document.getElementById("dailyFrame").src='https://fotostrana.ru/sports/ajax/minigameAward/?_ajax=1&gameId='+gameIDs[d]+'&ajax=1';
      document.getElementById("content").innerHTML="<h1>"+(d+1)+"</h1>";
      d++;
    } else {
      d=0;
      document.getElementById("content").innerHTML="<h1>Мини-игры пройдены</h1>";
    }
    }
    Такая проблема остается, при нажатии на кнопку - всё проходит. Добавлено через фрейм на страницу, но по мимо кнопки еще и грузится просто при входе на сайт.
    Добавлен вот так:
    Код:
    <div id="container">
        <div id="content"></div>
        <iframe onload="javascript:cupquest();" id="cupFrame" style="display:none;"></iframe>
        <iframe onload="javascript:dailyquest();" id="dailyFrame" style="display:none;"></iframe>
        <!--<iframe onload="javascript:bazequest();" id="bazeFrame" style="display:none;"></iframe>-->
    
    </div>
                  
                    <center>
                      <div class="sButton surfMinigamePlay" onclick="dailyquest()"><strong>Ежедневки</strong></div>
                      <div class="sButton surfMinigamePlay" onclick="bazequest()"><strong>База школы</strong></div>
                      <div class="sButton surfMinigamePlay" onclick="cupquest()"><strong>Задания кубка</strong></div>
                 </center>
    На сайте выглядит вот так:
    Screenshot_3.png

    Вот таким образом скрипты прикрученны к сайту:
    Код:
          <script src="js/script.js"></script>
          <script src="js/cupquest.js"></script>
          <script src="js/dailyquest.js"></script>
          <script src="js/bazequest.js"></script>
    И когда запускаешь сайт, из фрейма естесвенно сразу все скрипты загружаются(((
    Подскажите как сделать так, чтобы скрипт грузился только при нажатии на кнопку?
     
    Последнее редактирование: 21 окт 2019 в 17:58