Google 应用脚本突出显示所选文本
Google App Scripts Highlight Selected Text
我正在编写一个应用程序脚本,我正在尝试制作一个突出显示特定文本片段的功能。代码的结果是我突出显示了整行,而不仅仅是文本。
之前:
之后:
我想要的:
这是我的代码:
function myFun4(){
var selection = DocumentApp.getActiveDocument().getSelection();
if(selection){
var el = selection.getRangeElements();
Logger.log(el[0].getElement().getAttributes());
var el0 = el[0].getElement();
Logger.log(el0.asText());
var highlightStyle = {};
highlightStyle[DocumentApp.Attribute.BOLD] = true;
highlightStyle[DocumentApp.Attribute.BACKGROUND_COLOR] = '#FFFF00';
el0.setAttributes(highlightStyle);
}
}
我相信你的目标如下。
- 您想在 Google 文档中突出显示 select 编辑的文本。
这样的话,下面的修改怎么样?
修改后的脚本:
当您使用此脚本时,请 select 在 Google 文档和 运行 脚本上添加文本。
function myFun4(){
var selection = DocumentApp.getActiveDocument().getSelection();
if(selection){
selection.getRangeElements().forEach(e => {
var range = [e.getStartOffset(), e.getEndOffsetInclusive()];
e.getElement().asText()
.setBackgroundColor(...range, '#FFFF00')
.setBold(...range, true);
});
}
}
在此修改中,使用setBackgroundColor(startOffset, endOffsetInclusive, color)
和setBold(startOffset, endOffsetInclusive, bold)
的方法将背景颜色和粗体反映到select编辑的文本中。
在您的脚本中,更改了段落的样式。我认为这可能是您遇到问题的原因。
参考文献:
我正在编写一个应用程序脚本,我正在尝试制作一个突出显示特定文本片段的功能。代码的结果是我突出显示了整行,而不仅仅是文本。
之前:
之后:
我想要的:
这是我的代码:
function myFun4(){
var selection = DocumentApp.getActiveDocument().getSelection();
if(selection){
var el = selection.getRangeElements();
Logger.log(el[0].getElement().getAttributes());
var el0 = el[0].getElement();
Logger.log(el0.asText());
var highlightStyle = {};
highlightStyle[DocumentApp.Attribute.BOLD] = true;
highlightStyle[DocumentApp.Attribute.BACKGROUND_COLOR] = '#FFFF00';
el0.setAttributes(highlightStyle);
}
}
我相信你的目标如下。
- 您想在 Google 文档中突出显示 select 编辑的文本。
这样的话,下面的修改怎么样?
修改后的脚本:
当您使用此脚本时,请 select 在 Google 文档和 运行 脚本上添加文本。
function myFun4(){
var selection = DocumentApp.getActiveDocument().getSelection();
if(selection){
selection.getRangeElements().forEach(e => {
var range = [e.getStartOffset(), e.getEndOffsetInclusive()];
e.getElement().asText()
.setBackgroundColor(...range, '#FFFF00')
.setBold(...range, true);
});
}
}
在此修改中,使用
setBackgroundColor(startOffset, endOffsetInclusive, color)
和setBold(startOffset, endOffsetInclusive, bold)
的方法将背景颜色和粗体反映到select编辑的文本中。在您的脚本中,更改了段落的样式。我认为这可能是您遇到问题的原因。