我的play()
功能未被调用。我真的不知道为什么。
我有以下代码:
var mp = document.getElementById("mp3");
function play() {
mp.play();
console.log("hello");
}
function scan() {
cordova.plugins.barcodeScanner.scan(
function(result) {
if (result.text == "home") {
var atHomeRepQR = '<div class="container-h"><div class="card"><div class="item item-text-wrap "><i class="icon ion-unlocked"></i> Diese Ansicht ist entsperrt.</div></div><button onclick="play()" class="button button-positive btn">Play</button></div><audio id="mp3"><source src="video/ping.mp3" type="audio/mpeg"></audio>';
save("atHomeSaveQR", atHomeRepQR);
}
if (result.text == "street") {
var atStreetRepQR = '<div class="container-s"><div class="card"><div class="item item-text-wrap "><i class="icon ion-unlocked"></i> Diese Ansicht ist entsperrt.</div></div><button onclick="play()" class="button button-positive btn">Play</button></div><audio id="mp3"><source src="video/ping.mp3" type="audio/mpeg"></audio>';
save("atStreetSaveQR", atStreetRepQR);
}
if (result.text == "bern") {
var atBernRepQR = '<div class="container-b"><div class="card"><div class="item item-text-wrap "><i class="icon ion-unlocked"></i> Diese Ansicht ist entsperrt.</div></div><button onclick="play()" class="button button-positive btn">Play</button></div><audio id="mp3"><source src="video/ping.mp3" type="audio/mpeg"></audio>';
save("atBernSaveQR", atBernRepQR);
}
if (result.text == "bahnhof") {
var atBahnhofRepQR = '<div class="container-ba"><div class="card"><div class="item item-text-wrap "><i class="icon ion-unlocked"></i> Diese Ansicht ist entsperrt.</div></div><button onclick="play()" class="button button-positive btn">Play</button></div><audio id="mp3"><source src="video/ping.mp3" type="audio/mpeg"></audio>';
save("atBahnhofSaveQR", atBahnhofRepQR);
}
if (result.text == "atelier") {
var atAtelierRepQR = '<div class="container-at"><div class="card"><div class="item item-text-wrap "><i class="icon ion-unlocked"></i> Diese Ansicht ist entsperrt.</div></div><button onclick="play()" class="button button-positive btn">Play</button></div><audio id="mp3"><source src="video/ping.mp3" type="audio/mpeg"></audio>';
save("atAtelierSaveQR", atAtelierRepQR);
}
},
function(error) {
alert("Scanning failed: " + error);
}
);
}
语法
<button onclick="play()" class="button button-positive btn">Play</button></div><audio id="mp3"><source src="video/ping.mp3" type="audio/mpeg"></audio>
当你问我时,是对的。
我的错误是什么?
答案 0 :(得分:1)
在解析mp
之前,您的#mp3
变量可能正在初始化。您应该在document.ready
块中包装任何类似的静态代码,以便将其执行推迟到页面加载完成。
理想情况下,这可以使用jQuery实现:
var mp;
$(document).ready(function() {
mp = document.getElementById("mp3");
});
在它缺席的情况下,这对于大多数现代浏览器来说已经足够了(参见this answer):
var mp;
document.addEventListener("DOMContentLoaded", function(event) {
mp = document.getElementById("mp3");
});
答案 1 :(得分:0)
我必须将mp
放入函数play()
,如下所示:
function play() {
var mp = document.getElementById("mp3");
mp.play();
}
感谢mplungjan!
答案 2 :(得分:0)
我认为,你的javascript代码在body标签之前。因此,在&#39; mp&#39;元素没有得到。所以在身体标记之后移动你的javascript代码,即在渲染你的html之后。