Autoprint脚本在Firefox中无法运行,Chrome正常,寻求技术帮助
解决Firefox中自动打印PDF页面的脚本问题
核心差异与排查方向
Firefox对PDF页面的脚本执行环境、window.print()触发限制和Chrome存在明显差异,同时扩展权限配置也可能导致脚本失效。
修复方案
1. 调整脚本触发时机
Firefox加载PDF页面时DOM就绪时机晚于Chrome,建议通过延迟或加载事件确保PDF渲染完成:
window.addEventListener('load', function() { if (document.location.href.indexOf("/repo/reports") > 0) { // 延迟500ms确保PDF内容渲染完毕 setTimeout(() => window.print(), 500); } });
2. 更新扩展权限配置
确保你的Autofill扩展在Firefox中拥有必要权限,修改扩展的manifest.json:
"permissions": [ "tabs", "*://*.sebina.it/*" ]
3. 适配Firefox内置PDF Viewer
Firefox的PDF Viewer有独立脚本上下文,可通过内容脚本直接触发内置打印按钮:
在manifest.json中添加内容脚本规则:
"content_scripts": [ { "matches": ["*://*.sebina.it/repo/reports/*"], "js": ["print-script.js"], "run_at": "document_idle" } ]
创建print-script.js文件写入:
setTimeout(() => { // 优先触发PDF Viewer内置打印按钮 const printBtn = document.querySelector('#print'); printBtn ? printBtn.click() : window.print(); }, 1000);
4. 临时测试:关闭内置PDF预览
若以上方法无效,可临时禁用Firefox内置PDF预览验证脚本逻辑:
- 地址栏输入
about:config - 找到
pdfjs.disabled并设置为true
内容的提问来源于stack exchange,提问作者AnnuitCoeptis
相关产品推荐
相关产品推荐

