javascript - 从 Node.js 调用 JS 文件中的函数

标签 javascript jquery node.js

我想做的是,当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/

相关文章:

javascript - 刷新后保持 AngularJS 中的滚动位置

javascript - 在 codeigniter 中有条件地设置 session 数据

javascript - 如何在全选时选择 JQgrid 中的非隐藏行?

jquery - 单击时再次更改 Div 宽度

javascript - 如何获取html元素的子元素

node.js - 接收错误 : 'Error: SSL Error: SELF_SIGNED_CERT_IN_CHAIN' while using npm

node.js - 引导 Mocha 测试套件

javascript - 隐藏水平滚动条,但保持滚动功能

javascript - 像 blockUI 一样淡化除 div 之外的所有内容

javascript - 许多按钮触发 html 表中的一个模式