Javascript Office.js如何将字符样式应用于所选单词
抱歉-Javascript和Office.js都是新手,但现在是时候将我的.NET格式功能区转换为跨平台的了。一点学习曲线 我使用我在Addin教程中找到的这个函数,成功地应用了段落样式,但我尝试了调整它(见下文),并且在我了解到完全关闭Addin、退出word并返回并重新加载之前测试更改(非常繁琐)是很重要的,它仍然适用于整个段落的字符样式。GrrJavascript Office.js如何将字符样式应用于所选单词,javascript,office-js,Javascript,Office Js,抱歉-Javascript和Office.js都是新手,但现在是时候将我的.NET格式功能区转换为跨平台的了。一点学习曲线 我使用我在Addin教程中找到的这个函数,成功地应用了段落样式,但我尝试了调整它(见下文),并且在我了解到完全关闭Addin、退出word并返回并重新加载之前测试更改(非常繁琐)是很重要的,它仍然适用于整个段落的字符样式。Grr function applyemphasisstyle() { Word.run(function (context) {
function applyemphasisstyle() {
Word.run(function (context) {
var pars = context.document.getSelection().paragraphs;
pars.load();
return context.sync().then(function () {
for (var i = 0; i < pars.items.length; i++) {
pars.items[i].style = "Emphasis";
}
return context.sync();
})
}) //needed for Stack overflow
.catch(function (error) {
console.log("Error: " + error);
if (error instanceof OfficeExtension.Error) {
console.log("Debug info: " + JSON.stringify(error.debugInfo));
}
});
}
到
我已尝试删除“.段落”
我已尝试将“.段落”更改为“.单词”等相同的结果-应用样式,但应用整个段落,而不是所选单词
谢谢你能提供的任何帮助 这段代码对我有用。由于您选择的是单个单词,因此无需循环,而且由于您正在写入style属性而不是读取它,因此无需加载text对象
return Word.run(function(context) {
var selectedText = context.document.getSelection();
return context.sync()
.then(function () {
selectedText.style = "Emphasis";
})
});
我建议您使用该工具来计算脚本的逻辑。Hi Rick,谢谢您的建议答案,不知何故,这对我不起作用-它仍然将字符样式应用于整个段落,而不是所选的单词。我假设我需要在代码前面加上函数调用“function applyemphasisstyle(){并用一个结束括号结束了代码行。是什么导致代码为您工作而不是在我的环境中工作?JavaScript的奥秘…PS我将查看脚本实验室-感谢tipHi Rick-我刚刚再次查看了它,它确实工作了。抱歉。我一定键入了一些错误。抱歉,我花了这么长时间回去吧,但是做这件事要做其他的工作。耶!谢谢。
var pars = context.document.getSelection().getTextRanges;
return Word.run(function(context) {
var selectedText = context.document.getSelection();
return context.sync()
.then(function () {
selectedText.style = "Emphasis";
})
});