javascript - Office.js 如何将字符样式应用于所选单词

标签 javascript office-js

抱歉 - Javascript 和 Office.js 的新手但是是时候将我的 .NET 格式功能区转换为跨平台了。有点学习曲线。

我使用我在插件教程中找到的这个功能来成功应用段落样式,但我已经尝试调整它(见下文)并且当我了解到完全关闭插件很重要时,退出它们单词并在测试更改之前返回并重新加载(非常乏味),它仍然适用于整个段落的字符样式。咕噜咕噜

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));
        }
    });
}

我试过改变:

var pars = context.document.getSelection().paragraphs;

var pars = context.document.getSelection().getTextRanges;

我试过只删除“.paragraphs” 我试过将“.paragraphs”更改为“.words”等
相同的结果 - 应用样式,但应用整个段落,而不是所选单词。

感谢您提供的任何帮助!

最佳答案

这段代码对我有用。由于您选择的是单个单词,因此无需循环,并且由于您是在写入样式属性而不是读取它,因此无需加载文本对象。

return Word.run(function(context) {
  var selectedText = context.document.getSelection();
   return context.sync()
   .then(function () {
     selectedText.style = "Emphasis";
   })
});

我建议您使用 Script Lab用于计算脚本逻辑的工具。

关于javascript - Office.js 如何将字符样式应用于所选单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57369318/

相关文章:

javascript - 在index.html文件中使用JS变量

javascript - 将事件监听器添加到索引元素

javascript - 将坐标从 EPSG 3857 转换为 4326

javascript - Internet Explorer 和 Office 加载项之间不共享持久 cookie

javascript - 旋转时如何使圆圈周围的文字不重叠

javascript - 如何使用react实现导航栏

javascript - 当我在我的 Word 插件应用程序中使用 Promise 时出现 Promise 未定义错误

http - outlook.office.com 与 outlook.office365.com

office-js - Excel Add in 的 Office 设置限制是什么

ms-office - 如何在 Excel 功能区中制作清晰的图标?