在我的Office-JS加载项中我插入带有尾随换行符的文本,并将光标设置为此文本的末尾,如下所示:
myText
myText
myText
<-- Cursor is here
在Windows上的Word 2016中,光标正确设置为第二行,但在Word for Mac(版本16.11)中,光标设置为第一行的末尾。
因此,如果我连续3次运行此函数,则会生成以下文本:
在Windows上:
myTextmyTextmyText<-- Cursor is here
// 3 new lines following
在Mac上:
({
extendsFrom: 'SubpanelListView',
initialize: function(options){
this._super('initialize', [options]);
this.context.on('list:drawereditrow:fire',this.drawerEditClicked, this);
},
drawerEditClicked: function(model){
app.drawer.open({
layout:'create-actions',
context:{
create: true,
model: model,
module:'oppp_Opportunity_Products',
}
});
},
_dispose: function() {
this._super('_dispose');
},
});
我错过了什么吗?
答案 0 :(得分:2)
您可以通过允许Word为您处理此问题来避免处理新行异常。诀窍是使用<br>
代替插入HTML insertHtml()
标记:
function myInsertTest() {
Word.run(function(context) {
let selectedRange = context.document.getSelection();
selectedRange.insertText("myText", "End");
selectedRange.insertHtml("<br /> ", "End");
selectedRange.select("End");
});
}
请注意,
需要让Word变得有点过于聪明并忽略后面没有任何内容的中断。
答案 1 :(得分:1)
这实际上是一个错误,实际上它现在在Windows的最新版本中失败了。感谢您报告此问题,我们会尽快调查并尽快修复。
答案 2 :(得分:0)
您可以使用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();
});
}