为什么我的javascript方法没有被调用?

时间:2019-02-09 12:36:45

标签: javascript html django html5

我的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');
}

我还尝试使用<script type=text/javascript></script>将JavaScript代码原始放入HTML正文中,并且尝试使用onbeforeprint而不是onload,但仍未显示我的JS方法。

The <h5> is being showed,但不触发我的JS方法。

2 个答案:

答案 0 :(得分:3)

  

onload事件只能在文档(正文)本身,框架,图像和脚本上使用。换句话说,它可以仅附加到主体和/或每个外部资源。 div(或h5)不是外部资源,它是作为主体的一部分加载的,因此onload事件不适用于该对象。

     

通过-How to add onload event to a div element?


要在加载<h5>元素后调用该函数,只需在Django <h5>中的if statement元素之后立即调用该函数,如下所示:

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

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

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

{% endif %}

答案 1 :(得分:0)

尝试将onload="advSessionExists()添加到script标记中。或用您的脚本window.addEventListener('onload', advSessionExists);

编写