获取PPT备注
方式一:通过白板SDK获取
适用于通过白板SDK加载的PPT课件。
使用白板SDK提供的getPPTRemarks接口,条件限制:白板SDK2.7.6+版本
调用时机:收到PPT加载完成的事件TEDU_BOARD_H5_PPT_STATUS_LOADED回调
teduBoard.on(TEduBoard.EVENT.TEB_H5PPT_STATUS_CHANGED, (status, data) => {
if (status === TEduBoard.TEduBoardH5PPTStatus.TEDU_BOARD_H5_PPT_STATUS_LOADED) {
// 示例一:获取指定课件的所有备注
teduBoard.getPPTRemarks(fid, -1);
// 示例二:获取指定页的备注,如获取第5页
teduBoard.getPPTRemarks(fid, 4);
}
});
方式二:通过PostMessage来获取
适用于业务页面通过iframe加载ppt课件。
// iframe加载课件
<iframe id="test_iframe" src="https://ppt2h5-1400127140.qcloudtiw.com/gm0drbg19vgr2r4g2pbc/index.html" frameborder="0" style="width: 800px;height:600px;"></iframe>
<button onclick="getPPTRemark()">获取所有页备注</button>
<button onclick="getPPTRemark(0)">获取第一页</button>
<button onclick="getPPTRemark(1)">获取第二页</button>
// 接收postmessage通信
window.onmessage = function (e) {
if (!e.data) {
return;
}
const module = e.data.module;
if (module === 'tx_ppt_ret_postmessage') { // 固定判断条件
let cmd = e.data.cmd;
if (cmd === 'remarks') { // 固定判断条件
const data = e.data.data; // ppt备注
console.log('pptremark:', data);
}
}
}
function getPPTRemark(pageIndex) {
document.querySelector('#test_iframe').contentWindow.postMessage({
module: 'tx_ppt_postmessage', // 固定参数
cmd: 'ppt_get_remarks', // 固定参数
data: {
pageIndex: pageIndex // -1:表示获取当前ppt所有备注;其他表示获取当前ppt索引页(从0开始)的备注
}
}, '*');
}
方式三:通过访问html meta自定义数据获取
适用于直接在浏览器中打开。此方式只能获取全量的备注,不支持获取指定页的备注。
document.querySelector('meta[name="ppt_remarks"]').getAttribute('content');