javascript 如何使用 node.js 创建 ActiveXObject?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/16408093/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
how to create a ActiveXObject with node.js?
提问by cybertextron
I'm a totally newbie in node.js
. I'm trying to implement a browser performance tool using node.js, so I have the following piece of code:
我是node.js
. 我正在尝试使用 node.js 实现浏览器性能工具,所以我有以下代码:
for(var j=0; j < 14; j++) {
// Create a new instance of HttpWatch in Firefox
var control = new ActiveXObject('HttpWatch.Controller');
var plugin = control.Firefox.New();
// Start Recording HTTP traffic
plugin.Log.EnableFilter(false);
// Clear Cache and cookier before each test
plugin.ClearCache();
plugin.ClearAllCookies();
plugin.ClearSessionCookies();
plugin.Record();
// Goto to the URL and wait for the page to be loaded
plugin.GotoURL(url);
control.Wait(plugin, -1);
// Stop recording HTTP
plugin.Stop();
if ( plugin.Log.Pages.Count != 0 )
{
// Display summary statistics for page
var summary = plugin.Log.Pages(0).Entries.Summary;
//WScript.Echo( "Iteration number " + j + "for" + url + " Total time to load page in (secs): " + summary.Time);
cache[i].value.push(summary.Time);
}
// Close down Firefox
plugin.CloseBrowser();
}
I'm using httpwatchto measure the performance values, which are going to be stored in a MySQL
database.
However, when I run:
我正在使用httpwatch来测量性能值,这些值将存储在MySQL
数据库中。但是,当我运行时:
node test.js
I get:
我得到:
C:\xampp\htdocs\test\browser-perf>node test.js
C:\xampp\htdocs\test\browser-perf\test.js:37
var control = new ActiveXObject('HttpWatch.Controller');
^
ReferenceError: ActiveXObject is not defined
at Object.<anonymous> (C:\xampp\htdocs\test\browser-perf\test.
js:37:21)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:901:3
How can I create a similar object as ActiveXObject
in node.js
and obtain the same desired results?
我怎样才能创建一个类似的对象ActiveXObject
中node.js
,并获得同样的预期效果?
回答by doctorlai
https://npmjs.org/package/win32ole
https://npmjs.org/package/win32ole
try the win32ole package, to install, open the node.js cmd, and type the following to install the package.
试试win32ole包,安装,打开node.js cmd,输入以下命令安装包。
npm install win32ole
Example usage:
用法示例:
var win32ole = require('win32ole');
var xl = win32ole.client.Dispatch('Excel.Application');
xl.Visible = true;
Please also see this post: Using COM object in NodeJS
另请参阅这篇文章:在 NodeJS 中使用 COM 对象
回答by Dai
I'm not a node.js user, so I can't comment on node.js specifically, but ActiveXObject
is a feature of the Microsoft Active Scripting JScript engine, as well as the new Chakra engine in IE9, so it is not available in other platforms because it's very Windows-specific.
我不是node.js用户,所以不能具体评论node.js,但它ActiveXObject
是Microsoft Active Scripting JScript引擎的一个特性,以及IE9中新的Chakra引擎,所以它在其他平台,因为它非常特定于 Windows。
回答by isomorphismes
As in https://github.com/mynetx/codebird-js/issues/13, you can emulate it using xhr2
: https://npmjs.org/package/xhr2.
正如在https://github.com/mynetx/codebird-js/issues/13 中一样,您可以使用xhr2
:https: //npmjs.org/package/xhr2模拟它。
npm install xhr2
I'm not sure if that will work for your browser performance tool but at least for someone else googling on the ActiveXObject
error it should work.
我不确定这是否适用于您的浏览器性能工具,但至少对于谷歌搜索ActiveXObject
它应该工作的错误的其他人。