我需要使用node.js获取屏幕分辨率,但以下代码不起作用。
var w = screen.width;
var h = screen.height;
这也行不通。
var w = window.screen.width;
var h = window.screen.height;
有人知道如何使用node.js获取屏幕分辨率吗? 谢谢。
答案 0 :(得分:3)
现在有一个来自npm的屏幕模块:
答案 1 :(得分:1)
使用screenz:
const { width, height } = require("screenz");
console.log(width);
//=> 1920
console.log(height);
//=> 1080
答案 2 :(得分:0)
您应该检索客户端JavaScript代码中的window.screen.width
和window.screen.height
,并通过AJAX,WebSocket,表单数据等将该信息发送到服务器端Node.js应用程序。 / p>
例如:
(function(w) {
$.ajax({
type: 'POST',
url: '/echo/json',
data: {
w: w.screen.width,
h: w.screen.height
},
success: function() {
console.log(arguments);
},
dataType: 'json'
});
})(window);
这很常见,与服务器端技术无关。无论你在后端使用什么(Node.js,Python,Ruby,PHP,Java,ASP.NET等),你应该从客户端发送数据到服务器,因为服务器没有处理用户的浏览器直接。
答案 3 :(得分:0)
我用phantomJS
解决了问题。
安装phantomJS
:
sudo apt-get install phantomjs
创建app.js文件:
var w = screen.width;
var h = screen.height;
console.log(w+"x"+h);
phantom.exit();
执行:
phantomjs app.js
返回:
1366x768
答案 4 :(得分:0)
这实在是太过分了,但我找到的节点模块已经不再适用了,它无论如何也无法处理多个显示器:
npm install nightmare
然后,如果您想要外部监视器的大小和坐标(如果可用的话):
const getBounds = async () => {
const nm = new Nightmare({
webPreferences: {
nodeIntegration: true,
},
});
const bounds = nm
.goto('about:blank')
.evaluate(() => {
const electron = require('electron');
const displays = electron.screen.getAllDisplays()
const display = displays.find((d) => d.bounds.x !== 0 || d.bounds.y !== 0) || displays[0];
return display.bounds;
}).end();
return bounds;
};