在PythonFlask中单击按钮时不播放音频

2024-06-25 05:58:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在单击删除按钮时播放音频声音。我还编写了外部JavaScript文件并将其与Flask链接

index.html

<a href="/delete/{{todoitem.item_id}}" class="btn btn-danger" onclick="playDelSound()">Delete</a>

app.js

function playDelSound() {
        var delSound = new Audio("/static/delete.mp3");
        delSound.play();
}

但是,当我单击删除按钮时,声音没有播放


Tags: 文件声音flaskindex链接htmljavascript音频
1条回答
网友
1楼 · 发布于 2024-06-25 05:58:44

当你们点击链接时,网络浏览器会重新加载页面,并从内存中删除应该播放声音的代码

你必须抓住林克

<a href="javascript:void(0);" onclick="sound('{{item}}')">JAVASCRIPT LINK</a>

播放声音并在声音后重定向/重新加载页面

function sound(item) {
    var audio = new Audio('/static/audio_file.mp3');
    audio.onended = function() { window.location.href="/delete/" + item; }
    audio.play();
}

最小工作代码

from flask import Flask, render_template_string

app = Flask(__name__)

@app.route('/')
def index():
    return render_template_string('''
<a href="/" onclick="sound()">NORMAL LINK</a><br>

<a href="javascript:void(0);" onclick="sound('{{item}}')">JAVASCRIPT LINK</a>

<script>
function sound(item) {
    //alert("SOUND");
    var audio = new Audio('/static/audio_file.mp3');
    // reload after audio 
    audio.onended = function() { window.location.href="/delete/" + item; }
    audio.play();
}
</script>
''', item="somevalue")

app.run()

相关问题 更多 >