2009-05-22 6 views
0

Ich habe ein Problem mit einem Windows Forms-Steuerelement in einer DLL und eingesetzt IE innerhalb eines Object-Tag eingewickelt. Das Objekt sollte eine Zeichenkette zurückgeben, die von Javascript in ein verstecktes Feld eingefügt wird, das zum Zurücksetzen auf den Server bereit ist. Dies ist ein Ansatz, den ich mehrmals verwendet habe, aber jetzt bekomme ich die gefürchtete Fehlermeldung "Objekt unterstützt diese Methode oder Eigenschaft nicht" aus Javascript. Ich habe dies auf den Aufruf der Funktion beschränkt, die eine Zeichenfolge zurückgibt.Windows Forms-Steuerelement in IE nicht zu JavaScript reagiert ruft

Dinge, die ich habe beseitigt:

  1. Rechtschreibfehler auf dem Funktionsaufruf
  2. Die aufgerufene Funktion ist eine öffentliche Funktion
  3. Berechtigungsfehler - alle auf localhost laufen, vertrauenswürdige Sites, etc.

Dinge, die relevant sein können:

  1. Die dll ein paar Klassen enthält, die
  2. in der Steuerung verwendet werden
  3. Das Control Brauch ist, sondern nutzt verschiedene Steuerelemente für Windows Forms
  4. Die Grundströmung ist, dass die Steuerung (die Benutzer mehrere Seiten von Zeichnungen eingeben können) erstellt ein Objekt, das serialisiert und an eine Basis-64-Zeichenfolge ausgegeben wird. Das Javascript ruft eine Ausgabefunktion auf und platziert die (komprimierte) Zeichenfolge in einem versteckten Steuerelement. Das Formular wird gesendet und die Zeichenfolge wird zur Verarbeitung an den Server gesendet.

Wenn jemand helfen könnte, würde ich es zu schätzen wissen.

<body> 
<script language="javascript" type="text/javascript"> 
    function GetValues(){ 
     alert(document.draw1.ReturnSerialisedObjectString()); 
     return true; 
    } 
</script> 


<input type="hidden" id="hdnData" runat="server" /> 
<input type="button" onclick="javascript:return GetValues();" value="Click Me" /> 

<br /><br /> 

<object id="draw1" classid="SlainteCustomControls.dll#SlainteCustomControls.FreeFormControl" width="482" height="579" viewastext /> 

+1

Können Sie einige Beispiele des C# -Code in der Komponente zur Verfügung stellen. Haben Sie IObjectSafety implementiert? Muss die Klasse und die Methoden, die über COM zugänglich sein sollen, korrekt dekoriert sein? – AnthonyWJones

Antwort

0

Versuchen: -

alert(document.getElementById('draw1').ReturnSerialisedObjectString()); 
+0

Habe schon, keine Freude damit. Könnte es etwas anderes an einer Maschine Ebene sein, die Benutzerkontrolle Stoppen von über JavaScript zugänglich zu sein? Ich habe bereits CAS-Richtlinien geändert, um vollständige Berechtigungen für localhost (zum Testen) zu ermöglichen. – StickyMcGinty

Verwandte Themen