Javascript случайный, который сохраняет, где случайный уже связан с - PullRequest
0 голосов
/ 01 марта 2020

Итак, я пытался написать этот вопрос раньше, и он был закрыт. Хотя я все еще был в состоянии получить комментарии, я просто предполагаю, что я использовал количество комментариев или что-то в этом роде. Пожалуйста, мне просто нужно знать, как вызвать функцию javascript в ссылке, чтобы она работала. Спасибо человеку, который предоставил код для функции, мне просто нужно знать, как вызвать ее по ссылке. Ничто из того, что я пробовал, не работает. Я пробовал другие javascript функции поиска, и ничего из этого не работает.

Итак, я написал код для моей работы, который по сути является тестом. Это HTML код. Я написал это так, что это будет установленный порядок для каждого вопроса. Тогда я понял, что будет легко запомнить ответы. Я нашел рандомизатор для ссылок, но мне нужно знать, как заставить его вспомнить, какие вопросы он задавал, они больше не появляются в викторине. Возможно ли это?

 <html>
    <head>
        <title>
            Easy Mode
        </title>
     <script src="https://randojs.com/1.0.0.js"></script>
    </head>
    <body align="center">
        Welcome to Easy Mode<br>
        In this mode, menu descriptions will be given <br>
        after each image to make it easier to identify<br>
        When you are ready, click the next button below <br>
        <a href="getNextQuestion()">Next</a>


       <script> 
 var allQuestions = ["question 1.html", "question 2.html", "question 
3.html", "question 4.html"];


function getNextQuestion() {
     var questions = JSON.parse(localStorage.getItem("questions"));
  if (questions === null) questions = randoSequence(allQuestions);
  if (questions.length == 0) return "VICTORY.html";
  var question = questions.pop().value;
  localStorage.setItem("questions", JSON.stringify(questions));
  return question;
}


    </script>

    </body>
</html>

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

1 Ответ

0 голосов
/ 01 марта 2020

Посмотрите на это.

Раскомментируйте строки с помощью localStorage при использовании (SO не позволяет localStorage в фрагментах)

скрипт должен быть на каждой странице

Я предлагаю вам ajax вопрос вместо этого.

В любом случае: рабочий пример

const allQuestions = ["question_1.html", "question_2.html", "question_3.html", "question_4.html"];
let storedQuestions;
// storedQuestions = localStorage.getItem("questions");
let questions = storedQuestions ? JSON.parse(storedQuestions) :  allQuestions;

function getNextQuestion() {
  let href = questions.length === 0 ? "VICTORY.html" : questions.splice(Math.floor(Math.random()*questions.length),1);
  // localStorage.setItem("questions", JSON.stringify(questions));
  alert(href+"\n"+questions); // remove when happy
  return href;
}
Welcome to Easy Mode<br> In this mode, menu descriptions will be given <br> after each image to make it easier to identify<br> When you are ready, click the next button below <br>
<a href="#" onclick="this.href = getNextQuestion()">Next</a>

ПРИМЕЧАНИЕ Вам необходимо избавиться от элемента localStorage, чтобы иметь возможность снова запустить тест. В моей победе. html У меня есть кнопка с

<button type="button" onclick="localStorage.removeItem('questions'); location.replace('start.html')">reset</button>

Для сброса на стартовой странице сделайте это ТОЛЬКО в верхней части скрипта на стартовая страница:

localStorage.removeItem('questions')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...