Office js OneNote加载项:获取HTML内容
在中,提供了获取RichText的代码。它能够获取页面的纯文本内容,但我似乎无法让它返回页面的HTML格式内容 例如: 标题:Office js OneNote加载项:获取HTML内容,office-js,onenote,onenote-api,Office Js,Onenote,Onenote Api,在中,提供了获取RichText的代码。它能够获取页面的纯文本内容,但我似乎无法让它返回页面的HTML格式内容 例如: 标题: A B 应该是: <p>Header:</p> <ul> <li>A</li> <li>B</li> </ul> 我们还没有记录它(它很快就会被添加),但是richText对象上有一个“getHtml()”方法。下面是一个示例片段 OneNote.run(fun
- A
- B
<p>Header:</p>
<ul>
<li>A</li>
<li>B</li>
</ul>
我们还没有记录它(它很快就会被添加),但是richText对象上有一个“getHtml()”方法。下面是一个示例片段
OneNote.run(function (context) {
var outline = context.application.getActiveOutlineOrNull();
outline.load('id, type, paragraphs/id, paragraphs/type');
return context.sync().then(function () {
if (!outline.isNull) {
var richTextParagraphs = [];
var htmls = [];
console.log("outline id: " + outline.id);
for(var i = 0; i < outline.paragraphs.items.length; i++){
var paragraph = outline.paragraphs.items[i];
console.log("paragraph type " + paragraph.type);
if (paragraph.type == "RichText"){
richTextParagraphs.push(paragraph);
var html = paragraph.richText.getHtml();
htmls.push(html);
paragraph.load("richtext/id, richtext/languageid")
}
}
return context.sync().then(function(){
for(var i = 0; i < richTextParagraphs.length; i++){
var richTextParagraph = richTextParagraphs[i];
console.log("Rich text paragraph id: " + richTextParagraph.richText.Id + " and " + richTextParagraph.richText.languageId)
}
for(var i = 0; i < htmls.length; i++){
var html = htmls[i];
console.log("Rich text paragraph html: " + html.value)
}
});
}
});
})
.catch(function(error) {
console.log("Error: " + error);
if (error instanceof OfficeExtension.Error) {
console.log("Debug info: " + JSON.stringify(error.debugInfo));
}
});
OneNote.run(函数(上下文){
var outline=context.application.getActiveOutlineOrNull();
大纲。加载(“id、类型、段落/id、段落/类型”);
返回context.sync().then(函数(){
如果(!outline.isNull){
var richtextparations=[];
var htmls=[];
console.log(“outline id:+outline.id”);
对于(var i=0;i
对象上可用的属性有哪些?其中有html的吗?如果是,它的返回类型是什么?属性仅为id
和text
(类型均为String
)。请注意,这不是整页HTML,只是在富文本级别。上面的函数也没有考虑到所有的富文本对象,页面中可能有更多的内容(在表内,在子段落中…)Jorge,感谢您的快速回复。上面的代码在Chrome中抛出语法错误警告。我想这可能是一个复制粘贴问题,所以我手工写了出来,但随后我得到了错误:error:valuenotload:result对象的值尚未加载。在读取value属性之前,请在关联的请求上下文上调用“context.sync()”。
您能澄清一下吗?我已经更新了代码并对其进行了测试。它现在应该可以工作了。是可以从表对象获取HTML,还是必须迭代表的每个单元格才能获取HTML?不幸的是,不可以。您必须迭代。
OneNote.run(function (context) {
var outline = context.application.getActiveOutlineOrNull();
outline.load('id, type, paragraphs/id, paragraphs/type');
return context.sync().then(function () {
if (!outline.isNull) {
var richTextParagraphs = [];
var htmls = [];
console.log("outline id: " + outline.id);
for(var i = 0; i < outline.paragraphs.items.length; i++){
var paragraph = outline.paragraphs.items[i];
console.log("paragraph type " + paragraph.type);
if (paragraph.type == "RichText"){
richTextParagraphs.push(paragraph);
var html = paragraph.richText.getHtml();
htmls.push(html);
paragraph.load("richtext/id, richtext/languageid")
}
}
return context.sync().then(function(){
for(var i = 0; i < richTextParagraphs.length; i++){
var richTextParagraph = richTextParagraphs[i];
console.log("Rich text paragraph id: " + richTextParagraph.richText.Id + " and " + richTextParagraph.richText.languageId)
}
for(var i = 0; i < htmls.length; i++){
var html = htmls[i];
console.log("Rich text paragraph html: " + html.value)
}
});
}
});
})
.catch(function(error) {
console.log("Error: " + error);
if (error instanceof OfficeExtension.Error) {
console.log("Debug info: " + JSON.stringify(error.debugInfo));
}
});