2017-10-31 10 views
0

Ich verwende JavaScript-API für Office Add-ins und versuche, eine Funktion an ein Ereignis anzuhängen, das ausgelöst wird, wenn ein neuer Absatz hinzugefügt wird (und schließlich auch Absatz löschen/ändern).Höre Absatzereignisse in OfficeJS (Office-Add-In-Plattform)

kann ich durchlaufen und drucken Sie alle Absätze in dem Dokument wie folgt:

Word.run(context => { 
    var paragraphs = context.document.body.paragraphs; 
    context.load(paragraphs, 'text');  
    return context.sync().then(() => { 
    for (var i = 0; i < paragraphs.items.length; i++) { 
     console.log(paragraphs.items[i].text); 
    } 
    }); 
}); 

Was ich will ist, um neue Absätze tun zu hören und eine Aktion tun, dass basierend auf. Ich habe EventType.NodeInserted gefunden, aber ich weiß nicht, wie ich es für alle Absätze des Dokuments verwenden soll. Im Idealfall würde ich so etwas wie die folgenden haben mag:

Office.context.document.addHandlerAsync(Office.EventType.NodeInserted, 
    function (paragraphEvent) { 
    // do something useful with new paragraph 
}); 

Ich habe alle Unterlagen durchgesehen, aber ich bin neu in der API so habe ich eine harte Zeit zu verstehen, wie die Ereignisse in jedem neuen Absatz zu binden (im gesamten Dokument, nicht in einem bestimmten Abschnitt).

Antwort

1

Es gibt kein Ereignis zum Erkennen von Absatzänderungen im Dokument. Das eventType.NodeInserted wird verwendet, wenn ein neuer Knoten einem benutzerdefinierten XML-Teil hinzugefügt wird.

Ihre einzige Option an dieser Stelle ist, das Dokument abzufragen und Änderungen abzuleiten. Wenn Sie an einem bestimmten Abschnitt des Dokuments interessiert sind, können Sie eine Bindung erstellen und die Ereignisse binding.dataChanged und infolgende Deltas abonnieren.

Hoffe, das hilft ... Juan.