2016-11-21 2 views
0

Ich versuche, eine JavaScript-Funktion "myFunction", die im Namespace "quote.Controller" ist, die auf Quote-Formular geladen ist. Ich versuche, wie eine Instanz zu schaffen, unterJavascript Funktion Anruf von Silverlight in MSCRM 2016 Turbo Formen

ScriptObject result=HtmlPage.Window.CreateInstance("quote.Controller");

Above Linie funktioniert gut, wenn ich „legacy Form Rendering verwenden“ auf Ja in MSCRM 2016. Aber wenn ich auf No „legacy Form Rendering verwenden“, Ich erhalte eine Ausnahme "Unbehandelter Fehler in Silverlight Application Type" quote.Controller 'existiert nicht. ". Das liegt möglicherweise daran, dass die Silverlight-Steuerung die JavaScript-Datei im Formular nicht finden kann. Ich versuchte den folgenden Code

var parent = HtmlPage.Window.GetProperty("parent") as HtmlWindow; 
if (parent != null) 
{ 
    parent.CreateInstance("quote.Controller"); 
} 

Kein Glück mit dem obigen Codeblock. Irgendwelche Vorschläge, was könnte das Problem sein?

+0

Nicht sicher, aber ich denke, wenn Sie Turbo Forms verwenden, werden eine Menge 'iFrames' auf der Seite hinzugefügt, je nachdem, in welchem ​​Rahmen Sie sich befinden, haben Sie möglicherweise Zugriff auf verschiedene Bereiche. Wie ich sagte, nicht sicher, ob dies die Ursache für Ihr Problem ist – jasonscript

+0

Ich habe versucht, meine benutzerdefinierte Javascript-Code im DOM-Explorer zu finden, konnte aber nicht auf Turbo-Formular finden. Aber wenn ich "Legacy-Formular-Rendering verwenden" auf "Ja" setze, kann ich den benutzerdefinierten Code in DOM finden. –

+0

Ja, ich denke, das liegt daran, dass sich Ihr Js-Code in einem anderen Frame befindet – jasonscript

Antwort

0

Sie müssen die Datei laden, die Ihre js-Funktion enthält.

Ich meine, Sie müssen die Bibliothek, die Ihre Funktion enthält, über die Formulareigenschaften hinzufügen.