在单击页面上的某个元素后,我使用以下代码调用一些东西
var http = require('http');
var fs = require('fs');
var jsdom = require('jsdom');
http.createServer(function(req, res) {
res.writeHead(200, {'Content-Type': 'text/html; charset=utf8'});
var document = new jsdom.JSDOM('<!doctype html><html><head></head><body><p>Text</p></body></html>').window.document;
document.getElementsByTagName('p')[0].addEventListener('click', function() {
alert('OK');
});
var page = '<!doctype html><html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>';
res.end(page);
}).listen(80, 'localhost');
但是,如果我单击该段落,则什么也没发生
我通过链接https://stackoverflow.com/a/36804251/10587062阅读了答案,但我不知道如何解决问题
答案 0 :(得分:4)
您正在将click
处理程序挂在服务器上,但是您要单击客户端上的元素。
相反,您需要向客户端发送脚本代码,以将事件处理程序挂接到浏览器呈现的DOM元素上,以处理单击并显示警报(这也是客户端的事情)。 (这意味着您不需要JSm;这是为了在服务器端进行DOM操作-例如Web抓取)。