Dies ist ein Follow-up zu einer Antwort here.Wie behandelt man ein ActiveX-Ereignis in Javascript?
Ich habe ein benutzerdefiniertes ActiveX-Steuerelement, das ein Ereignis ("ReceiveMessage" mit einem "msg" -Parameter) ausgelöst wird, die von Javascript im Webbrowser behandelt werden muss. Historisch dies konnten wir die folgende IE-only-Syntax verwendet an verschiedenen Projekten zu erreichen:
function MyControl::ReceiveMessage(msg)
{
alert(msg);
}
Wenn jedoch in einem Layout, in dem die Steuer begraben wird, kann die Javascript nicht die Kontrolle finden. Insbesondere, wenn wir dies in eine einfache HTML-Seite einfügen, funktioniert es gut, aber wenn wir es in eine ASPX-Seite einfügen, die vom <Form>
-Tag umschlossen wird, erhalten wir einen "MyControl ist undefiniert" -Fehler. Wir haben versucht, Variationen der folgenden:
var GetControl = document.getElementById("MyControl");
function GetControl::ReceiveMessage(msg)
{
alert(msg);
}
... aber es ergibt sich der Javascript-Fehler "GetControl ist undefined."
Wie wird ein Ereignis behandelt, das von einem ActiveX-Steuerelement gesendet wird? Im Moment sind wir nur daran interessiert, dass dies im IE funktioniert. Dies muss ein benutzerdefiniertes ActiveX-Steuerelement für das sein, was wir tun.
Danke.
Um einen Punkt zu klären - die getElementById funktioniert gut. Wir haben einen Verweis auf das Steuerelement, Javascript mag es einfach nicht, dass wir die :: Syntax mit diesem Verweis verwenden. – Raelshark
Ich habe noch nie die :: Syntax gesehen, wo ist das dokumentiert? – AnthonyWJones
Es ist schwer, tatsächliche Dokumentation dafür zu finden, aber hier ist ein Link zu einem MSDN-Artikel, der es erwähnt: http://msdn.microsoft.com/en-us/library/ms974564.aspx – Raelshark