Einfügen von Daten in den Textkörper bei der Erstellung eines Termins oder einer Nachricht in Outlook
Verwenden Sie die asynchronen Methoden (Body.getAsync, Body.getTypeAsync, Body.prependAsync, Body.setAsync und Body.setSelectedDataAsync), um den Texttyp abzurufen und Daten in den Textkörper eines Termins oder einer Nachricht einzufügen, die gerade erstellt wird. Diese asynchronen Methoden sind nur zum Verfassen von Add-Ins verfügbar. Um diese Methoden zu verwenden, stellen Sie sicher, dass Sie das Add-In-Manifest entsprechend eingerichtet haben, damit Outlook Ihr Add-In in Formularen zum Verfassen aktiviert, wie unter Erstellen von Outlook-Add-Ins für Verfassenformulare beschrieben.
In Outlook kann ein Benutzer eine Nachricht im Text-, HTML- oder Rich Text-Format (RTF) erstellen, und kann einen Termin im HTML-Format erstellen. Vor dem Einfügen von Daten müssen Sie zunächst das unterstützte Elementformat überprüfen, indem Sie aufrufen getTypeAsync
, da Sie möglicherweise zusätzliche Schritte ausführen müssen. Der Wert, getTypeAsync
der zurückgegeben wird, hängt vom ursprünglichen Elementformat sowie von der Unterstützung des Gerätebetriebssystems und der Anwendung ab, die im HTML-Format bearbeitet werden sollen. Nachdem Sie das Elementformat überprüft haben, legen Sie den coercionType
Parameter von prependAsync
oder setSelectedDataAsync
entsprechend fest, um die Daten einzufügen, wie in der folgenden Tabelle gezeigt. Wenn Sie kein Argument angeben und setSelectedDataAsync
davon ausgehen, prependAsync
dass die einzufügenden Daten im Textformat vorliegen.
Einzufügende Daten | Von getTypeAsync zurückgegebenes Elementformat | zu verwendende coercionType |
---|---|---|
Text | Text1 | Text |
HTML | Text1 | Text2 |
Text | HTML | Text/HTML |
HTML | HTML | HTML |
Hinweis
1 Gibt auf Tablets und Smartphones "Text" zurück, getTypeAsync
wenn das Betriebssystem oder die Anwendung die Bearbeitung eines Elements, das ursprünglich in HTML erstellt wurde, nicht unterstützt.
2 Wenn die einzufügenden Daten HTML sind und getTypeAsync
einen Texttyp für das aktuelle E-Mail-Element zurückgeben, müssen Sie Ihre Daten als Text neu organisieren und auf Office.CoercionType.Text
festlegencoercionType
. Wenn Sie die HTML-Daten einfach in ein textformatiertes Element einfügen, zeigt die Anwendung die HTML-Tags als Text an. Wenn Sie versuchen, die HTML-Daten einzufügen und auf Office.CoercionType.Html
festzulegencoercionType
, erhalten Sie eine Fehlermeldung.
Zusätzlich zum coercionType
-Parameter verwenden , wie bei den meisten asynchronen Methoden in der Office-JavaScript-API , getTypeAsync
prependAsync
und setSelectedDataAsync
andere optionale Eingabeparameter. Weitere Informationen zum Angeben dieser optionalen Eingabeparameter finden Sie unter "Übergeben optionaler Parameter an asynchrone Methoden" unter Asynchrone Programmierung in Office-Add-Ins.
Einfügen von Daten an der aktuellen Cursorposition
Dieser Abschnitt zeigt ein Codebeispiel, das verwendet, getTypeAsync
um den Texttyp des Elements zu überprüfen, das gerade zusammengesetzt wird, und dann verwendet, setSelectedDataAsync
um Daten an der aktuellen Cursorposition einzufügen.
Sie müssen eine Datenzeichenfolge als Eingabeparameter an setSelectedDataAsync
übergeben. Je nach Typ des Elementkörpers können Sie diese Datenfolge im Text- oder HTML-Format angeben. Wie bereits erwähnt, können Sie optional den Typ der Daten angeben, die in den coercionType
Parameter eingefügt werden sollen. Um die status und Ergebnisse von setSelectedDataAsync
abzurufen, übergeben Sie eine Rückruffunktion und optionale Eingabeparameter an die -Methode, und extrahieren Sie dann die erforderlichen Informationen aus dem asyncResult-Ausgabeparameter des Rückrufs. Wenn die Methode erfolgreich ist, können Sie den Typ des Elementtexts aus der asyncResult.value
-Eigenschaft abrufen, der entweder "text" oder "html" ist.
Wenn der Benutzer den Cursor nicht im Textkörper des Elements platziert hat, setSelectedDataAsync
fügt die Daten oben im Textkörper ein. Wenn der Benutzer Text im Textkörper des Elements ausgewählt hat, setSelectedDataAsync
ersetzt den markierten Text durch die von Ihnen angegebenen Daten. Beachten Sie, dass setSelectedDataAsync
fehlschlagen kann, wenn der Benutzer beim Verfassen des Elements gleichzeitig die Cursorposition ändert. Die maximal zulässige Anzahl Zeichen, die Sie mit einem Mal eingeben können, ist auf 1000000 Zeichen beschränkt.
let item;
// Confirms that the Office.js library is loaded.
Office.onReady((info) => {
if (info.host === Office.HostType.Outlook) {
item = Office.context.mailbox.item;
setItemBody();
}
});
// Inserts data at the current cursor position.
function setItemBody() {
// Identify the body type of the mail item.
item.body.getTypeAsync((asyncResult) => {
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
console.log(asyncResult.error.message);
return;
}
// Insert data of the appropriate type into the body.
if (asyncResult.value === Office.CoercionType.Html) {
// Insert HTML into the body.
item.body.setSelectedDataAsync(
"<b> Kindly note we now open 7 days a week.</b>",
{ coercionType: Office.CoercionType.Html, asyncContext: { optionalVariable1: 1, optionalVariable2: 2 } },
(asyncResult) => {
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
console.log(asyncResult.error.message);
return;
}
/*
Run additional operations appropriate to your scenario and
use the optionalVariable1 and optionalVariable2 values as needed.
*/
});
}
else {
// Insert plain text into the body.
item.body.setSelectedDataAsync(
"Kindly note we now open 7 days a week.",
{ coercionType: Office.CoercionType.Text, asyncContext: { optionalVariable1: 1, optionalVariable2: 2 } },
(asyncResult) => {
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
console.log(asyncResult.error.message);
return;
}
/*
Run additional operations appropriate to your scenario and
use the optionalVariable1 and optionalVariable2 values as needed.
*/
});
}
});
}
Einfügen von Daten am Anfang des Elementtexts
Alternativ können Sie verwenden prependAsync
, um Daten am Anfang des Elementtexts einzufügen und die aktuelle Cursorposition zu ignorieren. Anders als der Einfügepunkt, prependAsync
und setSelectedDataAsync
verhalten sich auf ähnliche Weise. Sie müssen zunächst den Typ des Nachrichtentexts überprüfen, um zu vermeiden, dass html-Daten einer Nachricht im Textformat vorangestellt werden. Übergeben Sie dann die Datenzeichenfolge, die im Text- oder HTML-Format vorangestellt werden soll.prependAsync
Die maximal zulässige Anzahl Zeichen, die Sie mit einem Mal voranstellen können, ist auf 1000000 Zeichen beschränkt.
Der folgende JavaScript-Code ruft zuerst auf getTypeAsync
, um den Typ des Elementtexts zu überprüfen. Anschließend werden die Daten je nach Typ als HTML oder Text oben im Textkörper eingefügt.
let item;
// Confirms that the Office.js library is loaded.
Office.onReady((info) => {
if (info.host === Office.HostType.Outlook) {
item = Office.context.mailbox.item;
prependItemBody();
}
});
// Prepends data to the body of the item being composed.
function prependItemBody() {
// Identify the body type of the mail item.
item.body.getTypeAsync((asyncResult) => {
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
console.log(asyncResult.error.message);
return;
}
// Prepend data of the appropriate type to the body.
if (asyncResult.value === Office.CoercionType.Html) {
// Prepend HTML to the body.
item.body.prependAsync(
'<b>Greetings!</b>',
{ coercionType: Office.CoercionType.Html, asyncContext: { optionalVariable1: 1, optionalVariable2: 2 } },
(asyncResult) => {
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
console.log(asyncResult.error.message);
return;
}
/*
Run additional operations appropriate to your scenario and
use the optionalVariable1 and optionalVariable2 values as needed.
*/
});
}
else {
// Prepend plain text to the body.
item.body.prependAsync(
'Greetings!',
{ coercionType: Office.CoercionType.Text, asyncContext: { optionalVariable1: 1, optionalVariable2: 2 } },
(asyncResult) => {
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
console.log(asyncResult.error.message);
return;
}
/*
Run additional operations appropriate to your scenario and
use the optionalVariable1 and optionalVariable2 values as needed.
*/
});
}
});
}
Siehe auch
- Abrufen und Festlegen von Elementdaten in einem Erstellformular in Outlook
- Abrufen und Festlegen von Outlook-Elementdaten in Formularen zum Lesen oder Verfassen
- Erstellen von Outlook-Add-Ins für Entwurfsvorlagen
- Asynchrone Programmierung in Office-Add-Ins
- Abrufen, Festlegen oder Hinzufügen von Empfängern beim Erstellen eines Termins oder einer Nachricht in Outlook
- Abrufen oder Festlegen des Betreffs, wenn Sie einen Termin oder eine Nachricht in Outlook verfassen
- Abrufen oder Festlegen des Orts, wenn Sie einen Termin in Outlook verfassen
- Abrufen oder Festlegen der Uhrzeit, wenn Sie einen Termin in Outlook verfassen
Office Add-ins