Как заставить функцию onclick кнопки на одной веб-странице выполнять функцию на другой веб-странице без php

#javascript #html

#javascript #HTML

Вопрос:

На моей главной HTML-странице у меня есть следующий код:

 <p class="text" id="time">00:00</p>
  

На моей другой html-странице у меня есть следующий код:

 <button onclick="resettime()">RESET TIME</button>
  

Они оба ссылаются на одну и ту же страницу javascript, на которой есть код:

 function timeIncrement()
{
    document.getElementById('time').innerHTML =  mins ":" secs;
  if(secs==60)
  {
    mins =1;
    secs = 0;
  }
}

var timecheck = setInterval(timeIncrement,1000);

function resettime()
{
  clearInterval(timecheck);
  mins  = 0;
  secs = 0;
  timecheck = setInterval(timeIncrement,1000);
}
  

Нажатие кнопки не сбрасывает время до 0: 0, поэтому оно не работает, поэтому мне было интересно, есть ли какой-либо способ, которым я могу это сделать, не заходя в php. Я новичок в html / js, поэтому извините, если это повторение, не смог найти похожий.

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

1. вы спрашиваете, как заставить resettime() работать или как вызвать его со второй страницы?

2. @Cruiser Как заставить это работать, поскольку проблема заключается в том, что onclick находится на кнопке на другой странице, верно?

3. если нет большего количества кода, который вы не показали, TimeIncrement() не знает переменных min и sec. Чтобы вызвать resettime() с другой страницы, вам нужно отправить запрос GET на вторую страницу и проанализировать URL, затем вызвать resettime() на основе переданных значений

4. Почему вы хотите, чтобы кнопка rest находилась на странице, отличной от фактического таймера? Или я просто глупый?

5. Нет, я действительно хочу, чтобы это было именно так. Я делаю это для странной ситуации, когда веб-страницы используются в автономном режиме, и мне нужно использовать одну веб-страницу для изменения содержимого на веб-странице таймера.

Ответ №1:

Два html означают два окна. если вы хотите выполнить скрипт из одного окна в другое окно, у вас должен быть объект другого окна, и оба окна должны иметь document.domain. за наличие ссылки на другое окно

в основной html добавьте следующее

 <script>window.open("other.html");//other html will open automatically</script>
  

в другом html измените код на следующий

 <button onclick="resettimeinMainHtml()">RESET TIME</button>

<script>function resettimeinMainHtml(){window.opener.resettime();// will reset in mail html}</script>
  

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

1. Я пробовал это, это не сработало, извините: ( Я думаю, что это связано со вторым документом, не имеющим доступа к переменным mins и secs, может быть?

2. объявите минуты и секунды глобально и попробуйте

3. Это должно сработать: O Можете ли вы сказать, какую ошибку вы получили в консоли.