我对Javascript / ajax不太熟悉,但是我发现了一个可以在我的Flask网站上运行的代码段。
<script type=text/javascript>
$(function() {
$('a#test1').bind('click', function() {
$.getJSON('/say1',
function(data) {
//do nothing
});
return false;
});
});
</script>
在我的app.py文件中,我有一个与JS / Ajax函数绑定的装饰器函数:
@app.route('/say1')
def say1():
print("background test pass")
os.system('say -r 100 "I am a robot"')
return("hello")
单击图像时,JS通过id(在本例中为id = test1)捕获单击,然后选择python函数并执行代码(如我所确定的那样)。
<a href=# id=test1><img id=test class="img-fluid" alt="Responsive image" src="static/macban.jpg"></a>
它很好用,但是我现在想添加多个图像,并想将python函数和Ajax / js函数重用于不同的图像ID。如果有的话,JS函数的重用就可以了。我知道'a#test'是选择单击哪个图像的方法,而$ .getJSON('/ say1')是通往python函数的途径,但是我还没有找到一种方法来更改它,具体取决于点击。目前,我已经复制了该函数(它看起来很忙而且效率很低)。
我的具体问题是:单击元素时如何将'a#test1'和'/ say1'字符串更改为图像ID?如果我确实创建了一些if / elif逻辑来确定要单击哪个,那么它应该在Javascript还是Python部分中?
如果有更好的方法可以执行此操作,请随时批评我,因为我完全不熟悉编码。哦,我知道os.system()对执行服务器端很危险,但这(暂时)将是安全网络上的本地托管站点。如果有更好的方法可以从浏览器激活Mac的“ say”命令,那么我也欢迎更好的主意。
谢谢