Почему мой метод javascript не вызывается? - PullRequest
0 голосов
/ 09 февраля 2019

У меня есть это в моем теле HTML:

<script src="{% static "jquery/sessionExists.js" %}"></script>

{% if context.alreadyOnSession == 'YES' %}
    <h5 class="loginerror" onload="advSessionExists()">This session is already logged in</h5>
{% endif %}

Это {} код django.

sessionExists.js:

function advSessionExists(){
    console.log('Just checking if its triggered');
}

Также я пробовалпоместив мой JavaScript-код raw в тело HTML с помощью <script type=text/javascript></script>, а также я попытался использовать onbeforeprint вместо onload, но он все еще не показывает мой метод JS.

The <h5> is being showed, но невызывая мой метод JS.

Ответы [ 2 ]

0 голосов
/ 09 февраля 2019

Попробуйте добавить onload="advSessionExists() к тегу script.Или напишите в своем сценарии window.addEventListener('onload', advSessionExists);

0 голосов
/ 09 февраля 2019

Событие onload может использоваться только для самого документа (тела), рамок, изображений и сценариев.Другими словами, он может быть привязан только к телу и / или к каждому внешнему ресурсу.Div (или h5) не является внешним ресурсом и загружается как часть тела, поэтому событие onload там не применяется.

Via - Как добавить событие onload в элемент div?


Чтобы вызвать функцию после загрузки элемента <h5>, просто вызовите функцию сразу после элемента <h5> внутри вашего django if statement, например так:

{% if context.alreadyOnSession == 'YES' %}

    <h5 class="loginerror">This session is already logged in</h5>

    <script type="text/javascript">
      advSessionExists();
    </script>

{% endif %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...