2009-07-15 5 views
3

J'ai la déclaration suivante dans mon code:<object /> déclaration javascript ActiveXObject

<object id="myObject" name="myObject" 
    data="data:application/x-oleobject;base64,ab9qcMENN0WE41oij7hs8764yu+YEwAA2BMABB==" 
    classid="clsid:83A04F76-85DF-4f36-A94E-BA3465007CDA" viewastext 
    codebase="someAssembly.dll#version=UNKNOWN"> 
</object> 

Je veux créer une instance de ce même objet, mais dans un fichier .js, et je voudrais donc comme à construire cet objet sans avoir besoin d'utiliser une balise (si cela est encore possible):

var myObject = new ActiveXObject(*Something goes here*); 

Répondre

-2

Vous pouvez accéder à l ' « objet » tout simplement en l'appelant par son identifiant. Par exemple:

<object id="myObject" name="myObject" 
    data="data:application/x-oleobject;base64,ab9qcMENN0WE41oij7hs8764yu+YEwAA2BMABB==" 
    classid="clsid:83A04F76-85DF-4f36-A94E-BA3465007CDA" viewastext 
    codebase="someAssembly.dll#version=UNKNOWN"> 
</object> 

Maintenant, je peux y accéder comme suit:

myObject.userText = "hello!"; 

Où "userText" est une propriété de cet objet.

J'espère que cela répond à votre question.

+0

Microsoft n'a-t-il pas encore corrigé le bogue "Global JS objects for each element with a ID"? – Quentin

+3

Votre réponse ne répond pas du tout à la question BTW. – Quentin

+0

J'ai peur qu'ils le fassent. J'ai récemment implémenté un contrôle activeX qui est un composant au lieu d'un contrôle et j'ai fait le même appel par la valeur d'attribut OBEJCT. Et cela fonctionne pour moi. –

2

C'est la façon de créer une nouvelle instance:

var newObj = new ActiveXObject(servername.typename[, location]); 

Comme vous pouvez le voir, il y a un paramètre optionnel location que vous pouvez utiliser pour accéder à des objets ActiveX à distance mais lire les détails à ce sujet ici: MSDN ActiveXObject (vous Je vais trouver quelques informations à la fin du document).

Questions connexes