以下のような、HTMLファイルとそこからajaxで呼び出すphpを作りました。
index.html
HTML
1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="utf-8"> 5 <title>音声ファイルのテスト</title> 6</head> 7<body> 8 <button id="btn">押してください</button> 9 <div id="sound">ここに音声再生部分が入る</div> 10<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 11<script> 12(function(){ 13 'use strict'; 14 15 var btn = document.getElementById("btn"); 16 var sound = document.getElementById("sound"); 17 btn.addEventListener("click", function(){ 18 var obj ={}; 19 $.get('sound.php', obj, function(data) { 20 sound.innerHTML = data; 21 }); 22 }); 23})(); 24</script> 25</body> 26</html>
sound.php
PHP
1<?php 2 3print <<< EOM 4<audio id="audio" src="voice.mp3" preload="none"></audio> 5<a id="play"><img src="sound.png"></a> 6 7<script> 8(function(){ 9 var playBtn = document.getElementById("play"); 10 var audio = document.getElementById("audio"); 11 playBtn.addEventListener('click', function(){ 12 audio.play(); 13 }); 14})(); 15</script> 16EOM;
- index.htmlを表示すると、ボタンが表示される。
- ボタンを押すと、サーバ側のsound.phpが動いて、audioタグと音声再生用のJavaScriptの入ったソースが挿入される
という動作をします。ここでsound.phpによって挿入された画像(sound.png)をクリックすると、voice.mp3が再生されてほしいのですが、再生されません。
ajaxを使わずに、sound.phpがはくコードをそのままHTML内に挿入すれば、問題なく音声が出るので、ajaxがらみでうまく動かないのだと思うのですが、どのようにすればいいでしょうか?
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/21 04:20
2018/07/21 04:49
2018/07/21 05:32