4

I've noticed that there are 2 ways we can create ActiveX object in JavaScript, one is by embedding:

<object id="TestControl" classid="clsid:xxx-xx-xx-xx"></object>

and then later on obtain object using DOM:

var myControl = document.getElementById('TestControl');

Another way is to create instance of ActiveXObject:

var myControl2 = new ActiveXObject('Test.TestControl');

What exactly is different from ActiveX object perspective? Is one approach better then the other? Are there any differences in performance?

Thanks.


Take a look at https://github.com/engla/keybinder; it's a simple library that proclaims to enable global keyboard shortcuts and includes Python bindings. It's specific to GTK, but if your target is Ubuntu most Ubuntu systems are using Gnome and GTK-based applications by default. YMMV outside of GTK windows, in which case you'll have to use some lower-level X11 calls.

4

1 に答える 1

5

2つはほぼ同等です。

<object>表記は公式のHTML です。var myControl2 = new ActiveXObject('Test.TestControl');JScript や ASP などのスクリプト言語でのみ使用できます。HTML で直接使用することはできません。

また、「オブジェクト」表記にはクラス ID が必要です。必要なのは、システムにインストールされている (またはインターネット経由でインストール可能な) ActiveX オブジェクトだけです。あなたが与えたJavascriptの例にはPROGIDがあります...これには、1)ActiveXオブジェクトが既にインストールされている必要があり、2)ActiveXオブジェクトにはPROGIDが必要です(ActiveXではオプションであり、必須ではありません)。

于 2012-12-15T00:14:56.717 に答える