ポート3000にindex.htmlをロードし、再生ボタンをクリックすると、すべてのメッセージが正しく送信されますが、音声が一時停止しないために('#pause').click()
は実行されません。nodejsとjqueryを使用してボタンを自動的にクリックできません
のindex.htmlコード:
<html>
<head>
<script type="text/javascript" src="new.js"></script>
<script src="/socket.io/socket.io.js"></script>
<script src="jquery-3.1.1.min.js"></script>
</head>
<body>
<button type="button" id="play" name="play" value="play">PLAY</button>
<button onclick="pauseAd()" type="button" name="pause" value="pause">PAUSE</button>
</br>
<audio controls id="song">
<source src="Lyrics to Swallowed in the Sea - Coldplay.mp3" type="audio/mpeg">
</audio>
<div id="messages"></div>
<script>
var socket = io.connect("http://localhost:3000");
$(function() {
$('#play').bind('click', function() {
alert("User clicked on play");
playAd();
socket.emit('msg', {
sent: 1
});
return false;
});
});
socket.on('msg-received', function(data) {
if (data.value == 1) {
$('#pause').click();
$('#messages').append('<p>message received' + data.value + '</p>')
}
});
</script>
</body>
</html>
Serverコード:
var express = require('express');
var app = express();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.use(express.static('./Public'));
app.set('views', __dirname + '/tpl');
app.set('view engine', "jade");
app.engine('jade', require('jade').__express);
app.get("/", function(req, res) {
res.render("new");
});
io.sockets.on('connection', function(socket) {
console.log("user connected");
socket.on('msg', function(data) {
console.log("message received", data);
socket.emit('msg-received', {
value: 1
});
});
});
http.listen(3000, function() {
console.log('listening on *:3000');
});
"$(#pause)"は、値pauseのIDを探しています。あなたのボタンにid = "pause"を追加してみてください=) – Hodrobond