簡體   English   中英

Office-JS忽略Word for Mac中的尾隨換行符

[英]Office-JS ignores trailing new-lines in Word for Mac

在我的Office-JS加載項中,我要插入帶有尾隨換行符的文本,並將光標設置為該文本的結尾,如下所示:

function myInsertTest() {
  Word.run(function(context) {
    var selectedRange = context.document.getSelection();
    selectedRange.insertText("myText", "End");
    selectedRange.insertText("\r\n", "End");
    selectedRange.select("End");
    return context.sync();
  });
}

在Windows上的Word 2016中,光標已正確設置為第二行,但在Mac版Word(版本16.11)中,光標已設置為第一行的末尾。

因此,如果我連續運行此函數例如3次,將導致以下文本:

在Windows上:

myText
myText
myText
<-- Cursor is here

在Mac上:

myTextmyTextmyText<-- Cursor is here
// 3 new lines following

我錯過了什么?

您可以通過允許Word為您處理新的奇怪行而避免。 技巧是使用insertHtml()代替插入HTML <br>標簽:

function myInsertTest() {
  Word.run(function(context) {
    let selectedRange = context.document.getSelection();
    selectedRange.insertText("myText", "End");
    selectedRange.insertHtml("<br />&nbsp;", "End");
    selectedRange.select("End");
  });
}

請注意, &nbsp; 需要繞過Word一點點的聰明,並忽略之后沒有任何內容的中斷。

這實際上是一個錯誤,事實上,它現在在Windows的最新版本中失敗了。 感謝您報告此問題,我們將對其進行調查並盡快修復。

您可以使用JavaScript

String.fromCharCode(13)

插入ANSI 13(Word使用的字符)。 所以:

function myInsertTest() {
  Word.run(function(context) {
    var selectedRange = context.document.getSelection();
    selectedRange.insertText("myText", "End");
    selectedRange.insertText(String.fromCharCode(13), "End");
    selectedRange.select("End");
    return context.sync();
  });
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM