Звук не воспроизводится при нажатии кнопки Python Flask - PullRequest
0 голосов
/ 11 февраля 2020

Я пытаюсь воспроизвести звук при нажатии на кнопку Удалить . Я также написал внешний файл 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();
}

Но когда я нажимаю Удалить , звук не воспроизводится.

1 Ответ

0 голосов
/ 11 февраля 2020

При нажатии на ссылку веб-браузер перезагружает страницу и удаляет из памяти код, который должен воспроизводить звук.

Вам потребуется перехватить ссылку

<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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...