/**
* 禁用/启用福昕PDF WebSDK工具栏按钮
* @param {string} btnName - 按钮name属性(必填),跳页按钮固定值:
* goto-first-page(首页)、goto-prev-page(上一页)
* goto-next-page(下一页)、goto-last-page(末页)
* @param {boolean} isDisabled - 控制状态(必填):true=禁用,false=启用
*/
function setFoxitBtnDisabled(btnName, isDisabled) {
// 精准匹配福昕PDF工具栏按钮DOM
const btn = document.querySelector(`button[name="${btnName}"]`);
// 未找到按钮则直接退出,避免报错
if (!btn) return;
if (isDisabled) {
// --------------- 禁用按钮逻辑 ---------------
// 原生禁用属性
btn.disabled = true;
// 按钮置灰视觉效果
btn.style.opacity = "0.4";
// 鼠标悬浮禁止样式
btn.style.cursor = "not-allowed";
// 定义事件拦截函数:彻底阻断点击、键盘操作
const blockEvent = (e) => {
e.stopImmediatePropagation(); // 阻止事件冒泡
e.preventDefault(); // 阻止默认行为
};
// 绑定拦截事件(捕获阶段触发,优先级最高)
btn.addEventListener("click", blockEvent, true);
btn.addEventListener("keydown", blockEvent, true);
// 存储事件句柄,用于启用时移除
btn._blockEvent = blockEvent;
} else {
// --------------- 启用按钮逻辑 ---------------
// 移除原生禁用属性
btn.disabled = false;
// 恢复正常视觉样式
btn.style.opacity = "1";
btn.style.cursor = "pointer";
// 移除之前绑定的事件拦截(避免重复绑定)
if (btn._blockEvent) {
btn.removeEventListener("click", btn._blockEvent, true);
btn.removeEventListener("keydown", btn._blockEvent, true);
// 删除存储的事件句柄
delete btn._blockEvent;
}
}
}