[英]Node.js addEventListener and other events without browser
任务是在不使用浏览器的情况下在 Node.js 上运行此脚本。 问题是代码只能在浏览器的上下文中工作,并且只能以这种形式工作。
var d1 = {};
function test(data){
console.log(data);
d1 = data;
}
addEventListener("test", test, false);
var cv = document.createEvent("CustomEvent");
(function init(e) {
e.initCustomEvent("test", false, false, ["test1","test2", {test: 'test3'}]);
dispatchEvent(e)
}(cv));
console.log(d1);
如果更改 init 的 function(删除括号 (...)),则代码将无法正常工作。
function init(e) {
e.initCustomEvent("test", false, false, ["test1","test2", {test: 'test3'}]);
dispatchEvent(e)
}(cv);
在互联网上,我找到了script 。 错误代码不会随它一起给出,但它与不带括号的代码版本相同。 这个解决方案有什么问题? 所有代码都在这里启动
因为 NodeJS 没有 DOM 也没有document
object,所以您需要以不同的方式制作自定义事件。 检查该节点事件的节点文档
// get the reference of EventEmitter class of events module var events = require('events'); //create an object of EventEmitter class by using above reference var em = new events.EventEmitter(); //Subscribe for FirstEvent em.on('test', function (data) { console.log('First subscriber: ' + data); }); // Raising FirstEvent em.emit('test', 'This is my first Node.js event emitter example.');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.