Как не вызывать функцию JS после загрузки страницы

#javascript #php #html #function #pageload

#javascript #php #HTML #функция #загрузка страницы

Вопрос:

Я хочу загружать функцию JS только тогда, когда мой php-код вызывает эту функцию, но не при первом посещении страницы. Мой код выглядит так:

    <?php
      function runMyFunction() {
        echo '<script type="text/javascript"> JSfunction(); </script>'; 
      }
   ?>


    <script>
    
    JSfunction();
    function JSfunction(){
        // Code in my function
    }

    </script>
  

Проблема в том, что функция jsFunction() вызывается, как только страница (index.html ) загружается. Но я хочу выполнить функцию только с моим PHP-кодом, который вызывается после нажатия кнопки. Я был бы рад ответу.

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

1. PHP запускается на вашем сервере, JavaScript запускается в браузере.

2. Избавьтесь от runMyFunction . Добавьте код этой функции в обработчик события click. Не будет срабатывать при загрузке, вместо этого будет срабатывать при нажатии.

Ответ №1:

привяжите событие нажатия кнопки к вызову ajax, который вызывает ваш php-код и возвращает JSON, сообщающий, продолжать или нет.

Другой способ для этого — использовать этот тип php-кода:

 <?php
if(isset($_GET['myvar'])){
?>
<script type="text/javascript">
//call your javascript here
</script
<?php
}
?>
  

После этого нажмите кнопку перезагрузки страницы с добавлением переменной GET myvar к URL.

Пример: https://example.com?myvar=1