【发布时间】:2012-05-11 04:50:23
【问题描述】:
我知道以前在这里讨论过,但我没有找到实用的解决方案/解决方法,我希望有人知道如何解决这个问题!
这里是:
如果您尝试在谷歌浏览器的单个页面中频繁调用window.print() 方法(就像用户单击打印按钮一样),浏览器会在控制台中抛出警告消息,说明:
忽略对 print() 的过于频繁的调用
什么也没发生!几秒钟后,一切恢复正常,并在您再次调用window.print() 命令时出现打印对话框!更糟糕的是,优秀的 Chrome 人员对调用打印命令的页面使用指数等待时间,这意味着用户点击按钮打印的次数越多,他等待打印对话框出现的时间就越长!
这个问题在 chrome 中已经存在了很长一段时间(14 个后续版本),已确认是 Area-UI 错误,我昨天 posted it again for google team 希望 Chrome 团队的人可以验证什么时候修复这个令人难以置信的烦人功能!
但是,我在这里寻找的是解决此问题的方法,是否有 任何事情我可以做到这一点?我的公司正在开发一个高度交易性的财务系统,其中包含大量需要打印的报告,而仅仅因为这个小故障,整个项目就有可能在我最喜欢的谷歌 Chrome 浏览器中运行!
更新:
Here's the code in Chrome browser 导致此功能,看起来至少需要 2 秒才能有人再次调用打印命令,因此 UI 中 2 秒间隔的计时器可能会阻止进入无限等待回调!还有其他想法吗?
【问题讨论】:
-
我能想到的唯一解决方法是有一个内部计时器(跟踪何时可以调用打印),并且当按下打印按钮时有一个类似于 AJAX 的动画,直到打印真的叫。这不是很好,因为它仍然会延迟打印过程,但它看起来比弹出错误要好。
-
@gillesc:是的,这比单击按钮时“什么都没有”要好,然后您一次又一次地单击使情况变得更糟!我在 Chrome 浏览器中找到了导致此功能的代码行:git.chromium.org/gitweb/… 并且看起来至少需要 2 秒才能有人再次调用打印命令,因此 2 秒间隔的计时器可能会阻止进入无限等待回调!
-
对
window.print的调用是在同一页面还是不同页面?如果不同,它们是在新窗口/标签还是 iframe 中?还是同一个标签,通过重定向? -
window.print命令位于页面内的 iframe 上,我正在构建一个报表查看器组件,其中包含处理报表所需的所有方法,例如:next、previous、find、export和print按钮。后者导致谷歌浏览器出现问题 -
希望问题得到解决,但下划线的去抖动听起来像是一个可行的解决方法。 documentcloud.github.com/underscore/#debounce
标签: javascript google-chrome printing