2016-11-01 4 views
3

Ich bin neu in Office 365 Word JavaScript API. Ich versuche, ein Json-Objekt von einem Elternteil über den Dialog api an einen Dialog zu senden. Dafür konnte ich keine bessere Lösung finden. Ich habe gefunden, dass es möglich ist, ein Json-Objekt von dem Dialog an das Elternteil zu senden, indem ich das folgende Code-Snippet benutze.Wie man ein Json-Objekt von der übergeordneten Dialog-API in Office365 an ein Dialogfeld sendet

Office.context.ui.messageParent 

kann mir jemand eine gute Lösung mit einem Code-Schnipsel, dieses Problem zu lösen?

Antwort

2

Sie können versuchen, dass so etwas wie

In geordneten Web-Seite (die tatsächlichen Add-In) JavaScript-Code

Office.context.ui.displayDialogAsync(url, options, function(result) { 
    var dialog = result.value; 
    dialog.addEventHandler(Office.EventType.DialogMessageReceived, function(args){ 
     dialog.close(); 
     var json = JSON.parse(args.message); 
     //do what ever you need to do... 

    }); 
}); 

HINWEIS: aus Gründen der Einfachheit I "Fehlerprüfungen" weggelassen, wenn Callback-Funktion empfängt Fehlerergebnis. Sie sollten sich auch darum kümmern.

Die Webseite, die die Webseite im Dialogfenster geöffnet, um eine Funktion bei url wird für Zurückschieben des JSON-Objekt nach repräsentiert es als String

var asString = JSON.stringify(myObj); 
Office.context.ui.messageParent(asString); 

Natürlich geöffnet wird, muss auch Office.js Referenz . Hier ist die Dokumentation Link zu diesem so genannten dialogAPI https://dev.office.com/reference/add-ins/shared/officeui

Edit:

die ursprüngliche Frage ist Elternteil von Daten zu senden, um Kinder

Wenn Sie Informationen zu den schicken müssen Seite in DialogAPI geöffnet. Ich schlage vor, dass Sie die Abfrageparameter an url anhängen. Sie können Ihr Json-Objekt stringieren und übergeben. Das ist kein sehr sauberer Gedanke. Standardized way to serialize JSON to query string?

+0

Vielen Dank für Ihre Antwort. Aber das habe ich nicht gefragt. Ihr Beispiel zeigt, dass JSON-Daten vom Dialog an den übergeordneten Benutzer gesendet werden. Aber ich muss Json-Objekt vom Eltern zu Dialog senden. – NishMJ

+0

@NishMJ Sorry, ich habe meine Antwort aktualisiert. Ich habe die ursprüngliche Antwort behalten, weil sie für andere nützlich sein kann. –

+0

Danke, aber ich verstehe nicht, wie man die URL-Parameter im Dialog bekommt.Könntest du mir bitte ein Beispiel zeigen, wie man das JSON-Objekt im Dialog bekommt, von Eltern gesendet? – NishMJ

0

Sie können problemlos JSON-Daten oder -Objekte an Ihre Eltern senden.

Dieses Code-Snippet sollte in der JS-Datei Ihrer untergeordneten Seite (Dialogseite) enthalten sein.

(function() { 
    "use strict"; 

    // The Office initialize function must be run each time a new page is loaded 
    Office.initialize = function (reason) { 
     $(document).ready(function() { 
      $('#btnLogin').click(submit); 
     }); 
    }; 
    function submit() { 
     // Get and create the data object. 
     var email = $('#txtEmail').val(); 
     var password = $('#txtPassword').val(); 

     var data = { 
      email: email, 
      password: password 
     } 

     // Create the JSON and send it to the parent. 
     var json = JSON.stringify(data); 

     Office.context.ui.messageParent("json"); 
    }  
})(); 
Verwandte Themen