【问题标题】:Why is my javascript method not being called?为什么我的 javascript 方法没有被调用?
【发布时间】:2019-07-03 12:20:10
【问题描述】:

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

我还尝试使用 &lt;script type=text/javascript&gt;&lt;/script&gt; 将我的 JavaScript 代码原始放入 HTML 正文中,并且我尝试使用 onbeforeprint 而不是 onload 但它仍然没有显示我的 JS 方法。

The &lt;h5&gt; is being showed,但没有触发我的 JS 方法。

【问题讨论】:

    标签: javascript python html django


    【解决方案1】:

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

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


    要在 &lt;h5&gt; 元素加载后调用函数,只需在 django if statement 中的 &lt;h5&gt; 元素之后调用函数,如下所示:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-12-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-23
        • 2021-02-13
        • 1970-01-01
        相关资源
        最近更新 更多