问题描述
@H_404_2@
Alpha 部分
@H_404_2@
页面单元
页面操作
页面树
部分测试版
@H_404_2@
第 1 页
第 2 页
第 3 页
截面伽马
@H_404_2@
页面第一
第二页
第三页
navigatetoPage 看起来像是在其他地方排队,并且 context.sync() 第 54 行不起作用。
最后,当navigatetoPage 处理排队请求时,它会抛出错误。
这是 application.navigatetoPage API 的已知限制吗?我假设我已准备好所有 context.sync。
我的目标是浏览所有页面内容(通过页面的内容属性)。我了解此属性存在限制 - 它仅适用于活动页面:
您只能通过 Page#load 访问当前活动页面的页面内容。要更改活动页面,请调用 navigatetoPage($page)
这是代码片段:
32 await OneNote.run(async context => {
33
34 // get sections
35 var sections = context.application.getActiveNotebook().sections;
36
37 sections.load("name,pages");
38
39 await context.sync()
40
41 // go through each section
42 sections.items.forEach( async section => {
43 var pages = section.pages;
44 pages.load("title");
45
46 await context.sync();
47
48 pages.items.forEach( async page => {
49 console.log("Section# " + section.name + ",page# " + page.title)
50 {
51 console.log("Now switching to " + page.title)
52 context.application.navigatetoPage(page);
53 // setTimeout( _ => { console.log("delay of 5sec.") },5000 );
54 await context.sync();
55 var selectedPage = context.application.getActivePage();
56 await context.sync();
57 selectedPage.load('id,title');
58 await context.sync();
59 console.log("ActivePage title " + selectedPage.title)
60 }
61 });
62 });
如果我注释掉第 51-59 行,则效果很好:
taskpane.js:49 Section# Section Gamma,page# Page First
taskpane.js:49 Section# Section Gamma,page# Page Second
taskpane.js:49 Section# Section Gamma,page# Page Third
taskpane.js:49 Section# Section Beta,page# Page 1
taskpane.js:49 Section# Section Beta,page# Page 2
taskpane.js:49 Section# Section Beta,page# Page 3
taskpane.js:49 Section# Section Alpha,page# Page Uno
taskpane.js:49 Section# Section Alpha,page# Page Dos
taskpane.js:49 Section# Section Alpha,page# Page Tres
但如果我启用该代码(使用navigatetoPage API),它有两个问题:
@H_404_2@如果我在这里遗漏了任何逻辑,请告诉我。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)