[英]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 /> ", "End");
selectedRange.select("End");
});
}
請注意,
需要繞過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.