【问题标题】:What's the best way to append html tags to existing text?将 html 标签附加到现有文本的最佳方法是什么?
【发布时间】:2018-03-07 05:58:05
【问题描述】:

我想使用office文档中当前选择的文本替换为相同的选择文本,但用html包围。有效地为当前选择添加超链接。

我首先阅读了 selection 的 text 属性

var objRange = objContext.document.getSelection();
objRange.load('text');

紧随其后

return objContext.sync().then(function(){
    var strSelection = objRange.text;
    objRange.insertHtml(
        "<a href='" + decodeURIComponent(strHyperlink) + "'>" + strSelection + "</a>", 
        Word.InsertLocation.replace
    );
    return objContext.sync().then(function(){
        objDialog.close();
    });
});

我需要一个同步来读取文本,然后另一个同步来将更新的文本写回到文档中,然后我关闭一个对话框。但这有时会导致 html 被写入文档两次。有没有更好的方法来代替双上下文同步?

【问题讨论】:

    标签: javascript office-js


    【解决方案1】:

    要回答您的问题,如果您需要阅读文本然后写入不同的上下文,则需要两次同步。 但是你可以看看Range.hyperlink 属性,它是可写的。我不知道它是否会给你一种避免两次同步的方法,但它适用于你似乎正在使用 insertHtml 做的事情。

    【讨论】:

    • 如果我理解正确,第二次同步需要不同的上下文?
    • 没有。您在整个 Word.run 中使用相同的上下文对象。
    • 我建议不要使用 insertHtml,而是将 URL 写入 objRange.hyperlink 属性。
    猜你喜欢
    • 2013-05-09
    • 2015-02-18
    • 2020-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-07
    • 2011-07-28
    • 2020-12-21
    相关资源
    最近更新 更多