监听工具栏的某些功能使用wza2.subscribe,监听工具栏动作,Action定义可以在这里查看,例如在打开工具栏时隐藏开启按钮,关闭工具栏时重新打开
// 订阅工具条的开关动作,并在动作执行完后执行动作
wza2.subscribe('after', 'TOGGLE', function(action, state) {
// 如果当前工具条的状态是关闭状态
if (state.enable === false) {
location.href = '/path-to-redirect';
}
});
如果想要让一个元素可读,可以通过配置进行修改,比如:
wza2.config({
extraElementReadingFunc: function (element) {
var isLITag = element.tagName.toLowerCase() === 'li';
var isInLivePage = element.ownerDocument.location.pathname.includes('/fzlm/hdjlgny/ftzb/ftzbftsl');
if (isLITag && isInLivePage) {
return {
type: '',
text: element.textContent,
}
}
}
});
页面如果发生了变动,导致指读/连读功能不正常,可以手动调用wza2.settleElements()方法,重新获取页面元素,比如在变更iframe的地址之后
document.getElementById('iframe').addEventListener('load', wza2.settleElements);
wza.settleElements() 重新搜集页面元素,当页面中有因ajax或用户操作改变的页面后调用(多数情况在动态修改子iframe的src时),此方法会做:
iframe文档注入键盘事件与样式focus、mouseover事件如果想要在工具栏触发动作之前或之后额外手动触发逻辑,可以使用 wza2.subscribe 订阅工具栏Action,在工具栏触发动作之前或之后额外手动触发逻辑,例如在开启/关闭时可以触发弹窗、跳转等动作
例子:在退出工具栏后重定向到某页面
// 订阅工具条的开关动作,并在动作执行完后执行动作
wza2.subscribe('after', 'TOGGLE', function(action, state) {
// 如果当前工具条的状态是关闭状态
if (state.enable === false) {
location.href = '/path-to-redirect';
}
});
取消订阅Action,只传一个参数,取消触发Action之前或之后的所有订阅;传两个参数,取消所有指定Action下的订阅;传三个参数,取消指定Action下指定的订阅器