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

问题描述 投票:2回答:2

我在我的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代码原始放在带有<script type=text/javascript></script>的HTML主体中,并且我尝试使用onbeforeprint而不是onload,但它仍然没有显示我的JS方法。

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

javascript html django html5
2个回答
3
投票

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

Via - 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 %}

0
投票

尝试将onload="advSessionExists()添加到script标签。或者写在你的脚本window.addEventListener('onload', advSessionExists);

© www.soinside.com 2019 - 2024. All rights reserved.