Я хочу перенаправить пользователя на веб-страницу при нажатии кнопки с параметром из другой функции? - PullRequest
0 голосов
/ 12 декабря 2018

Я работаю над проектом курса, с которым я действительно борюсь.Я отслеживал клики пользователя на наборе изображений, это переменная n моей программы, и максимальное количество кликов равно 3. Я хочу перенаправить пользователя на другую веб-страницу, когда нажата кнопка и веб-страница, которую я будуредирект будет определяться переменной n, 1 - 2 или 3. Пользователь будет перенаправлен на разные страницы при нажатии кнопки в терминах переменной n.Я прилагаю свой код ниже, пожалуйста, помогите.Хочу добавить, что параметр index в функции приращения прикреплен к изображениям в html-коде.Функция увеличения работает также без проблем.Например, я попробовал случай, когда n = 1 и пользователь нажал кнопку.

function increment(index) {
        var n = 0;
        if (n < 3) {
            n++;
        }

        if (n == 1) {
            document.getElementById("gameButton").onclick = redirect (increment(index)) {
            location.href = "remaining8.html";
        }
   }

Ответы [ 3 ]

0 голосов
/ 12 декабря 2018

Когда вы перенаправляете на новую страницу, вы теряете значение «n», потому что вы загрузили совершенно новую страницу.

Вы можете открыть URL-адрес в новой вкладке / окне, и в этом случае ямогу предложить немного кодирования.Или вы можете сохранить значение «n» в файле cookie или локальном хранилище, но, опять же, в другом коде.

Вы также можете открыть эти URL-адреса в iframe, и тогда вы все равно будете на той же странице, когда выщелкните по нему еще раз.

что вы на самом деле пытаетесь сделать?

0 голосов
/ 12 декабря 2018

Вы можете передать параметр n на перенаправленную страницу:

if (n == 1) {
    document.getElementById("gameButton").onclick = redirect (increment(index)) {
        location.href = "remaining8.html";
    }

Измените location.href так, чтобы он просто передавал переменную n ("Остаток8.html? Index = n"), а затем перенаправлялстраница может получить его и таким образом продолжить процесс приращения.

Вот пост о чтении параметров URL: Как получить значение из параметров GET?

Конечно, размещение этого файла в cookie-файле или локальном хранилище, скорее всего, будет лучшим решением, чтобы сохранить ваш счет по всем перенаправлениям страниц, так как javascript может очень хорошо читать cookie-файлы.

0 голосов
/ 12 декабря 2018

Ваш redirect() уже объявлен, и во втором блоке if вы изменили его неправильное обозначение.Вы не хотите проверять n==1 внутри своей функции приращения, вы хотите сделать это в событии click, например:

document.getElementById("gameButton").onclick = () => {
   switch(n) {
      case 1:
         window.location.href = "remaining8.html";
         break;
      case 2: 
         // do something
         break;
      case 3: 
         // do something
         break;
}

Но что касается вашего исходного запроса, я не могу дать вамправильный ответ, если я не вижу ваш HTML.Опубликуйте свой html здесь, и я вернусь с решением.

Кроме того, вместо перенаправления на другую страницу, вы можете просто открыть новую веб-страницу в отдельной вкладке, чтобы вы никогда не потеряли n.Также я считаю, что отбрасывание этой функции приращения и увеличение значения n для события click является лучшим решением, решение приведено ниже:

 var n = 0;

 document.getElementById("gameButton").onclick = function() {
    if(value == 3) {
      value = 1;
    } else if(value < 3) value++;

    switch(n) {
      case 1:
         window.location.href = "remaining8.html";
         break;
      case 2: 
         // do something
         break;
      case 3: 
         // do something
         break;
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...