Chr*_*ltz 5 html javascript google-chrome
我有一个页面,带有一个简单的"打印"图像/链接,执行一个简单的JavaScript onclick处理程序.我发现,当我花太长时间检查打印对话框时,Chrome会抱怨页面上有"Page Unresponsive"警告.我没有在其他浏览器中看到此行为.
HTML看起来像这样:
<a onclick="if(window.print) window.print(); return false;">
<img src="print-button.png" alt="[Print]" />
</a>
Run Code Online (Sandbox Code Playgroud)
页面上没有其他活动脚本,所以我猜这个onclick处理程序是问题所在.我的猜测是Chrome在幕后做了类似的事情:
onclick处理程序存在onclick处理程序onclick处理程序调用window.print()(阻塞,等待用户输入)我认为这是Chrome中的一个错误,如果是真的,因为window.print调用不应该"定时".也就是说,它是一个阻止用户交互的动作,并允许用户花费他们需要的时间.
我这样做曾经试过作弊:
<a onclick="if(window.print) setTimeout(function() { window.print(); }, 0); return false;">
<img src="print-button.png" alt="[Print]" />
</a>
Run Code Online (Sandbox Code Playgroud)
...但它没有改变任何东西 - Chrome仍然抱怨长期运行的脚本.
我使用错误的技术来触发打印对话框吗?或者这是Chrome中的错误?
我在64位Mac上运行v72.0.3626.119并且我无法重现这一点,而我在64位Windows中运行相同版本的客户端并且她正在报告此问题.
这似乎是自 2018 年 2 月 27 日以来 Chrome 中的一个已知错误 / Chrome 64
Chrome 73 已修复
https://bugs.chromium.org/p/chromium/issues/detail?id=816869
| 归档时间: |
|
| 查看次数: |
312 次 |
| 最近记录: |