2

我定期使用 Image 对象加载远程图像,以便稍后在画布上绘制。Image 对象仅在 JS 中创建,在 DOM 中不存在。

该代码在 Chrome 和 Firefox 上运行良好。在 Opera 中,问题在于,每当修改图像源时,浏览器似乎总是切换到“加载模式”,即光标变为“等待”并且 Opera 在地址栏中添加“元素:X/Y”。

这是测试代码:http: //jsfiddle.net/nZntU/3/

有谁知道这种 Opera 行为的任何解决方法?

4

2 回答 2

1

我正在使用 Opera 并且知道您在描述什么(或试图实现)。我将进度条位置设置为“底部弹出”。当我激活该选项卡并且我正在键入此选项卡时(当您的示例在后台选项卡中处于活动状态时),您的示例每秒会在我的浏览器底部弹出一个弹出窗口,我的光标每秒切换到进度指示器图标.

Opera 默认行为是在地址栏中显示任何进度信息。即使我完全禁用进度条(设置为“关闭”),我也会注意到通过导航栏中不断变化的重新加载/停止按钮以及地址栏中的短暂闪烁(书签星消失)重新加载。在不同的设计/布局/配置中可能还有其他可见的东西。

老实说,您是在试图阻止用户故意看到他们可能想要看到的东西。我经常对这种出现的工具栏和等待光标感到有些恼火,但我 OTOH 通常很高兴注意到我的浏览器在后台执行操作。在使用 Chrome 等其他浏览器时,我什至经常感到困惑,我没有注意到我的浏览器在后台执行繁重的 AJAX 提升,而我只是在阅读一篇文章等,这有时会导致混乱的情况或奇怪的客户端状态。

我认为您不应该尝试更改浏览器行为,因为这完全超出了您的范围。有些人使用高度定制的浏览器、无铬窗口管理器等。当用户浏览器未按照您的喜好配置时,您也不会尝试启用或更改其他功能(想想 3rd 方 cookie、javascript、插件等) .)。用户以他喜欢的方式使用和配置他的用户代理(这意味着他可以禁用 CSS、使用繁重的用户样式表和 javascript、禁用 iframe、禁用窗口移动等)。

作为旁注,我记得在即将发布的 Opera 版本(关于 XHR)中阅读了有关此默认行为更改的内容,但我对此不再确定,因为我在开发快照中输入此内容并且仍然具有默认进度酒吧行为。我想,这就是生活。:-)

于 2012-07-24T22:06:23.777 回答
1

正如@graste 指出的那样,Opera 12.50 修复了这个错误。从他们的更改日志中:

CORE-43199 Opera 不应显示不在 DOM 中的图像的加载指示

于 2012-08-30T09:39:48.697 回答