2016-10-08 1 views
2

Env: Mac Office 2016 bauen 15,26Wort Lese CustomXMLParts wird intermittierend stecken

Ich bin die Word-Dokumente CustomXMLParts Lesen nach Office.initialize beendet ist. Ich verwende die Office.context.document.customXmlParts.getByNamespaceAsync-API. Der getByNamespaceAsync bleibt zeitweise hängen. Sobald ich in das Word-Dokument klicke, fährt die API fort und liest CustomXmlParts erfolgreich.

Irgendwelche Arbeiten um dieses? Ich versuchte auch, context.document.getSelection aufzurufen, um Cursor-Klick nachzuahmen, aber half nicht.

Office.context.document.customXmlParts.getByNamespaceAsync("MyXmlTag", function (asyncResult) { 
          if (asyncResult.value.length > 0) { 
           asyncResult.value[0].getNodesAsync("/", function (asyncNodeResult) { 
            if (asyncNodeResult.status == Office.AsyncResultStatus.Failed) { 
             console.log(" Failed to read word document. " + JSON.stringify(asyncResult)); 

            } else { 
             asyncNodeResult.value[0].getNodeValueAsync(function (result) { 
              if (result.status == Office.AsyncResultStatus.Failed) { 
               console.log(" getNodeValueAsync: Failed " + JSON.stringify(asyncResult)); 
              } 
              else { 
               //result.valuse is xml data 
              } 
             }); 
            } 
           }); 
          } 
          else { 
           console.log(" CustomXML part is not found"); 
          } 
         }); 

`

+0

vielen Dank für die Meldung dieses Problems. Wir untersuchen aktiv und liefern bald Ergebnisse. Haben Sie eine Beispiel-XML dafür verwendet? Vielen Dank! –

Antwort

0

Vielen Dank für die Meldung dieses Problems. Ich konnte es intern nicht reproduzieren. Einige Fragen:

  • Wenn Sie sagen, dass Sie diesen Code ausführen „nach Office.initialize fertig ist“, meinst du, dass es in Ihrem Office.initialize Rückruf-Code ist (und auch in $ (document) .ready, damit es ausgeführt wird, nachdem das HTML/JS fertig geladen ist), oder ist es in komplett separatem Code? Wie wird dein Code ausgelöst?
  • Tritt das Problem in allen benutzerdefinierten XML-Dateien auf, die Sie ausprobiert haben, oder nur in bestimmten benutzerdefinierten XML-Dateien?
+0

Es ist außerhalb des office.initialize. –

+0

Es ist außerhalb des office.initialize. Aus einem meiner eckigen Zustände suche ich nach einem Flag, das in Office gesetzt wird.initialize = function (Grund) { $ (document) .ready (function() {MyGlobal.officeInitialized = true}); } Dieses Problem scheint nicht spezifisch für benutzerdefiniertes XML zu sein. Mein Add-In erstellt während seines gesamten Lebenszyklus eine Reihe von Wort-API-Anrufen. Ich habe auch sehr selten bemerkt, dass create content control api (context.sync) auch hängen bleibt. Wenn ich auf das Dokument klicke, erscheint die Inhaltskontrolle auf dem Dokument. –

+0

Es sieht so aus, als ob die Word-Anwendung in eine Art Ruhezustand wechselt, wenn sie für längere Zeit nicht benutzt wird. Versuchen Sie Folgendes zu reproduzieren: 1. Laden Sie Add-in 2. Halten Sie Word App geöffnet, und verwenden Sie es für eine Weile (möglicherweise 15+ oder 30 + Minuten) 3. Reload Add-in (nicht klicken irgendwo sonst in Word-Dokument.Meistens bemerke ich Cursor auf das Word-Dokument blinkt nicht, zeigt nur eingefroren |) 4. Die API bleibt stecken 5. Klicken Sie in den Word-Dokument-Bereich. (Der Cursor beginnt zu blinken.) 6. Die API wird fortgesetzt. –

Verwandte Themen