2009-06-30 11 views
3

Ich versuche, ein ActiveX-Steuerelement dynamisch an eine Seite mit jQuery anzuhängen. Der Append ist erfolgreich; das Steuerelement wird jedoch nicht initialisiert, wenn es auf diese Weise getan wird. Ich glaube, dass IE die OnCreate-Methode eines ActiveX-Steuerelements aufruft, wenn eine Seite, die ein Steuerelement enthält, das Rendern beendet hat. Das Problem besteht darin, dass das Tag erst nach Abschluss des Renderings auf der Seite vorhanden ist, sodass OnCreate nie aufgerufen wird.Möglich, ein ActiveX-Steuerelement mit JavaScript an eine Seite anzuhängen?

Ich bin mir nicht sicher, ob das das Problem ist, es ist nur eine Vermutung. Hat jemand Erfahrung damit? Ist es möglich, IE zu zwingen, OnCreate zu einem bestimmten Zeitpunkt aufzurufen?

Das Steuerelement funktioniert gut, wenn das Tag im HTML ist. Das einzige Mal, wenn ich Probleme sehe, ist, wenn ich das Objekt per Javascript zur Seite hinzufüge.

Update: Ich muß wissen, was IE tut, wenn er einen auf der Seite

<object> 

Tag trifft beim Rendern. Das Steuerelement funktioniert in diesem Kontext gut, also ruft IE zu dieser Zeit etwas an. Ich muss das manuell aufrufen, nachdem ich das Steuerelement zum Rendern der Seite hinzugefügt habe.

Danke, Pete

+0

Code? :) –

+0

Entschuldigung? jQuery ('Körper'). append (activeX); Das musst du wirklich sehen? – slypete

+0

Ja, wir tun. Andere zu bitten, im Dunkeln zu debuggen, ist eine schlechte Idee, weil die erste Annahme ist, dass du nicht weißt, was du tust. – EricLaw

Antwort

1

Sie können die Kontrolle in einer völlig plattformübergreifende unfreundliche Weise mit neuen ActiveXObject (ProgID) instanziiert. ProgID ist eine Zeichenkette der Form "appName.typeName". z. B.

Das Beispiel funktioniert nur, wenn Excel auf Ihrem Computer installiert ist.

+0

Danke, kannst du die Benennung hier erklären, blah.blah? Ich habe den Quellcode der Kontrolle, also muss ich nur wissen, wonach ich suchen soll. Zur Zeit stelle ich nur CLSID und Codebase in einem Objekt-Tag zur Verfügung. – slypete

+0

Weißt du was das sind? Zum Beispiel implementiert Anwendung im obigen Beispiel diese IDispatch-Schnittstelle? Ich habe ein benutzerdefiniertes ActiveX-Steuerelement, für das ich diese Werte ermitteln muss. – slypete

0

Ich hatte ein ähnliches Problem wie Ihres heute mit einem Java-Applet unter IE. Meine Problemumgehung (ich wollte das Applet nach dem Rendern der Seite fertig stellen) bestand darin, unsichtbaren iframe dynamisch zu erstellen, wobei src auf eine einfache html-Seite mit meinem Applet zeigte. Nach dem Laden von iframe habe ich ihn als Elternteil angerufen, um mitzuteilen, dass das Applet geladen wurde.

+0

Ich kann keinen Iframe verwenden, da dieses Steuerelement in ein Widgetframework geladen wird, das Ziehen und Ablegen unterstützt. – slypete

Verwandte Themen