在我的app.py中,我像这样添加了python功能(以跟踪事件):
app = flask.Flask(__name__)
app.jinja_env.globals.update(track_event=track_event)
def track_event(category, label, action):
do="something"
在我的HTML代码中,我这样添加它:
<a href="somewebsite.web"
class="button button-rounded tright button-large topmargin-sm"
onclick="{{ track_event(category='outbound',action='stackoverflow',
label='somewebsite.web') }}"
>
在这一点上,我提供了一个清单,因此添加了用不同的URL(而不是somewebsite.web)多次截断的这种HTML。
这是我的问题:每次加载网站时,都不会激活“ onclick”,而是在浏览器完成加载后立即激活所有onclick事件。
这些函数按预期工作,但是除非有人实际单击,否则不应调用该函数。有没有人有类似的经历?
我是在Python还是HTML中出错?
在评论中您提到,在呈现的HTML中,您有onclick="None"
。问题是你的功能
def track_event(category, label, action):
do="something"
不返回任何内容。 Jinja将执行您要求的操作,并将该函数的返回值放入模板中。如果您return None
(这是隐式的:如果您从不显式返回,则默认为return None
)。