2017-08-05 2 views
0

J'ai un site Web de mean-stack. Je veux utiliser ExecuteFunction pour lier un bouton pour lancer ce site dans une boîte de dialogue. Voici mon FunctionFile.html:Je dois attendre plusieurs minutes avant l'ouverture de la boîte de dialogue pour la deuxième fois

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <meta http-equiv="cache-control" content="max-age=0" /> 
    <meta http-equiv="cache-control" content="no-cache" /> 
    <meta http-equiv="expires" content="0" /> 
    <meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" /> 
    <meta http-equiv="pragma" content="no-cache" /> 
    <title></title> 

    <script src="https://appsforoffice.microsoft.com/lib/1/hosted/office.js" type="text/javascript"></script> 

    <script> 
     var clickEvent; 
     (function() { 
      Office.initialize = function (reason) { 
      }; 
     })(); 

     function showNotification(text) 
     { 
      writeToDoc(text); 
      clickEvent.completed(); 
     } 

     function doSomethingAndShowDialog(event) { 
      clickEvent = event; 
      Office.context.ui.displayDialogAsync("https://www.google.com", {}, function() {}) 
     } 

     function writeToDoc(text) 
     { 
      Office.context.document.setSelectedDataAsync(text, 
       function (asyncResult) { 
        var error = asyncResult.error; 
        if (asyncResult.status === "failed") { 
         console.log("Unable to write to the document: " + asyncResult.error.message); 
        } 
       }); 
     } 
    </script> 
</head> 
<body> 
    Function file body is never displayed. 
</body> 
</html> 

Et manifest.xml J'utilise:

<FunctionFile resid="Contoso.DesktopFunctionFile.Url" /> 
... ... 
<bt:Url id="Contoso.DesktopFunctionFile.Url" DefaultValue="https://localhost:3000/htmls/FunctionFile.html" /> 

Je me rends compte que, après le chargement du manifeste, nous pourrions lancer la boîte de dialogue en cliquant sur le bouton. Cependant, après avoir fermé la boîte de dialogue manuellement et en cliquant à nouveau sur le bouton, nous devons attendre plusieurs minutes pour voir la fenêtre de notification ... wants to display a new window. Il n'y a pas d'erreur dans la console.

Est-ce que quelqu'un sait ce qui ne va pas ici?

Répondre

1

Vous appelez un URI externe de displayDialogAsync. Ceci n'est pas supporté et tenter de le faire conduit à un certain nombre de comportements inattendus.

De l'documentation en ce qui concerne startAddress doit:

La première page doit être sur le même domaine que la page parent. Une fois la page initiale chargée, vous pouvez accéder à d'autres domaines.

+0

J'ai écrit google comme exemple. Au départ, c'était une page d'aide sur mon domaine. Je vais le corriger plus tard. – SoftTimur

+0

Le problème existe, peu importe si la page est sur mon domaine ou non ... – SoftTimur

+0

La page est-elle en train de transmettre office.initialize avant la redirection? –