[英]Calling an external Javascript function in html using flask, showing function not defined
我正在使用燒瓶來{%extends“base.html”%}並插入{%block js_file%},然后我調用.js文件中定義的函數,但未定義未捕獲的referenceerror。 我有一個base.html包含所有頁面中的所有基本元素。 看起來像
<!DOCTYPE html>
<html>
<head>
<title>
{% block title %}{% endblock %}
</title>
<!--css file code-->
{% block cssfile %}{% endblock %}
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='header.css') }}">
</head>
<body>
...
{% block content %}{% endblock %}
...
{% block js_files %}{% endblock %}
</body>
....
然后在一個名為mark.html的特定頁面中,我首先擴展並插入元素,並希望在單獨的functions.js文件中測試函數:
{% extends "base.html" %}
{% block cssfile %}
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='mark.css') }}">
{% endblock %}
{% block title %}
Mark
{% endblock %}
{% block js_files %}
<script src="https://code.jquery.com/jquery-3.3.1.js" integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60=" crossorigin="anonymous">
<script src="{{ url_for('static', filename='functions.js') }}"></script>
{% endblock %}
{% block content %}
....
<script>warn();</script>
....
{% endblock content %}
functions.js只有一個測試功能:
function warn(){
alert('fired');
};
最后,在Chrome開發者工具中,擴展頁面看起來像
<!DOCTYPE html>
<html>
<head>
<title>
Mark
</title>
<!--css file code-->
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='mark.css') }}">
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='header.css') }}">
</head>
<body>
...
<script>warn();</script>
...
<script src="https://code.jquery.com/jquery-3.3.1.js" integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60=" crossorigin="anonymous">
</script>
<script src="/static/functions.js"></script>
</body>
....
結構看起來很好,但它沒有被捕獲的referenceerror沒有定義。 我是web div的新手,所以這個問題可能很愚蠢,但我感謝任何幫助!
我想,這與裝貨訂單有關。 因為我使用{% extends "base.html" %}
並插入{%block js_file%}所以排序令人困惑。 我通過在base.html中使用適當的鏈接來解決這個問題,因為這是所有內容的延伸,所以它肯定會首先加載。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.