我想做的是,当index.html将消息发送回服务器时,我想调用app.js
中名为changeButton()
的函数这将更新 index.html 上的标题颜色。
这是我的 node.js 文件:
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var express=require('express');
var tools = require('./assets/js/app.js');
app.use(express.static(__dirname + '/assets'));
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
io.on('connection', function(socket){
socket.on('chat message', function(msg){
console.log('message: ' + msg);
if(msg == "color") {
socket.emit("changeButton"); //working now
}
});
});
http.listen(3000, function(){
console.log('listening on localhost:3000');
});
app.js 位于 asset/js 文件夹中。
function getMessage() {
$('form').unbind('submit').bind('submit', function(){
socket.emit('chat message', $('#m').val());
$('#m').val('');
return false;
});
}
function changeButton() {
$('#status').css("background-color", "red");
}
这是index.html
<!DOCTYPE html>
<html>
<head>
<!-- app.js -->
<script src="js/app.js"></script>
<!-- app.css -->
<link rel="stylesheet" type="text/css" href="css/app.css"/>
</head>
<body>
<h1 id="status"> Node Test </h1>
<ul id="messages"></ul>
<form action="">
<input id="m" autocomplete="off" /><button onclick="getMessage();">Send</button>
</form>
<script>
var socket = io();
socket.on("changeButton", changeButton);
</script>
</body>
现在开始工作!
谢谢!!!
最佳答案
changeButton 在哪里定义的?如果它是在index.html中定义的,那么您需要执行以下操作:
if (msg == "add") {
socket.emit("changeButton")
}
在客户端:
socket.on("changeButton", changeButton);
关于javascript - 从 Node.js 调用 JS 文件中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29374589/