获取Node js中的浏览器选项卡标题

我试图在浏览器中获得标签的标题,例如Google Chrome,在我的Node应用程序中。 类似于Win32 API中的GetWindowText()。 如果可能,它需要适用于多个浏览器

目前在Node中,我可以检索当前进程的列表,但是我无法find任何能够提供该进程的详细信息,相当于当您打开任务pipe理器并单击Google Chrome进程上的展开箭头时,为您提供了选项卡的名称。

我尝试了npm中的一些节点模块,但是他们似乎没有把我需要的信息返回给我。 我也在这里看过类似的问题,但是我没有发现任何与我在这里问的相似的东西。

所以如果任何人都可以指出我正确的方向,我将不胜感激,

谢谢

我通过在我的应用程序中使用ffiref节点模块解决了我的问题,该模块允许使用user32.dll或任何其他需要创build的.dll文件。 然后,我从node-ffi – callback提取EnumWindows中find了这一点代码,我改变了JavaScript,为我做了诡计。

 var voidPtr = ref.refType(ref.types.void); var stringPtr = ref.refType(ref.types.CString); var bindings = { EnumWindows: ['bool', [voidPtr, 'int32']], GetWindowTextA: ['long', ['long', stringPtr, 'long']] }; var user32 = ffi.Library('user32', bindings); var windowProc = ffi.Callback('bool', ['long', 'int32'], function (hwnd, lParam) { var buf = new Buffer(255); var ret = user32.GetWindowTextA(hwnd, buf, 255); var name = ref.readCString(buf, 0); console.log(name); return true; }); var checkTitles = user32.EnumWindows(windowProc, 0); 

但是,这只适用于Windows,我还没有find(正确地看)在OSX上的解决scheme。 希望这可以帮助别人

您应该在这里查看Chrome远程debugging协议:

https://developer.chrome.com/devtools/docs/debugger-protocol

具体这个部分:

在这种情况下,您可以用您自己的实现replaceDeveloper Tools前端。 而不是导航到http:// localhost:9222的HTML页面,您的应用程序可以通过请求:

http:// localhost:9222 / json,然后获取一个JSON对象,其中包含有关可检查页面的信息以及可用于启动检测的WebSocket地址。

有几个node.js库与协议一起工作。

https://github.com/cyrus-and/chrome-remote-interface

https://github.com/node-inspector/node-inspector

这些可能会帮助你的方式。