2010-07-12 75 views
2

我進入這個問題: 我使用C#創建COM對象,註冊它並使用powershell設法使用它。 當我試圖用JavaScript來做同樣的事情時,它卻失敗了,但是JavaScript一直在拋出對象空錯誤。如何使用JavaScript處理COM對象?

對於如何解決這個問題你有什麼建議嗎?或者也許你的JavaScript不支持COM(如果是這樣,我可以在哪裏讀到更多關於它)?

非常感謝!

+4

發佈您的代碼...... – Nate 2010-07-12 21:03:28

+1

如果你的意思** **的JScript,這是ECMAScript中的MS」方言,它支持** **的ActiveX對象。 – 2010-07-12 21:06:03

+0

但COM對象(如我創建)不起作用?我使用 新的ActiveXObject(),但它保持拋出對象null。 – shaik 2010-07-12 21:09:08

回答

1

Javascript確實不支持COM。一個選項是使用JScript和ActiveX包裝到COM對象。此外,它只能在Internet Explorer中使用。

Instantiating a COM class
Calling functions of a COM object in JScript
Other JScript/COM tutorials, including script callbacks

+0

不是您唯一的選擇。 – 2010-07-12 21:11:15

+0

所以我從你的答案中看到。謝謝你的啓發。 – Michal 2010-07-12 21:29:26

+0

很難告訴OP關於使用細節的問題,但JScript COM/ActiveX可用於Windows腳本宿主(WSH)以及Active Server Pages(ASP),並非嚴格限於Internet Explorer。雖然課程瀏覽器特定的JS代碼不能在WSH和ASP下運行。 – David 2015-03-31 21:35:18

2

使用薩娜提饒JSDB shell。它基於Firefox中使用的核心Spidermonkey引擎(Mozilla的Javascript實現),但有一些綁定數據庫的對象等等。它有一些限制,但除非你使用複雜的東西,否則應該可以使用它。

例子:

x=new ActiveX('MSXML2.DOMDocument.6.0'); 
x.async = false; 
// I forget how to use IXMLDOMDocument but other calls go here 
+0

不應該是新的ActiveXObject()而不是ActiveX()? – David 2015-03-31 18:11:50

+0

編號http://www.jsdb.org/jsdbhelp.html#ActiveX – 2015-03-31 20:33:50

+0

好的,謝謝。有趣的是,這個解決方案/實現偏離了實例化部分的JScript。我猜想在IE瀏覽器普及和標準化之前,舊版IE不支持XmlHttpRequest()。 – David 2015-03-31 21:37:32