我定期使用 Image 对象加载远程图像,以便稍后在 Canvas 上绘制。 Image 对象仅在 JS 中创建,它不存在于 DOM 中。
该代码在 Chrome 和 Firefox 上运行良好。在 Opera 中,问题在于,每当修改图像源时,浏览器似乎总是切换到“加载模式”,即光标变为“等待”模式,并且 Opera 将“元素:X/Y”添加到地址栏。
测试代码如下:http://jsfiddle.net/nZntU/3/
有人知道这种 Opera 行为的解决方法吗?
最佳答案
我正在使用 Opera,并且知道您所描述的内容(或试图实现的目标)。我将进度条位置设置为“底部弹出”。当我激活该选项卡时,您的示例每秒都会在浏览器底部弹出一个弹出窗口,当我键入此内容时(当您的示例在后台选项卡中处于事件状态时),我的光标每秒都会切换到进度指示器图标.
Opera 默认行为是在地址栏中显示任何进度信息。即使我完全禁用进度栏(设置为“关闭”),我也会注意到通过导航栏中不断变化的重新加载/停止按钮以及地址栏中的短暂闪烁(书签星号消失)进行重新加载。不同的设计/布局/配置中可能还有其他可见的东西。
说实话,您正在试图阻止用户故意看到他们可能想看到的内容。我经常对这样出现的工具栏和等待光标感到有点恼火,但我通常很高兴注意到我的浏览器在后台执行操作。当我使用 Chrome 等其他浏览器时,我什至经常感到困惑,当我只是阅读一篇文章等时,我没有注意到我的浏览器在后台执行大量 AJAX 提升,这有时会导致令人困惑的情况或奇怪的客户端状态。
我认为您不应该尝试更改浏览器行为,因为这完全超出了您的范围。有些人拥有高度定制的浏览器、无 Chrome 窗口管理器等。当用户浏览器未按照您的喜好配置时,您也不会尝试启用或更改用户浏览器中的其他功能(例如第 3 方 cookie、javascript、插件等) .)。用户按照他喜欢的方式使用和配置他的用户代理(这意味着他可以禁用 CSS、使用大量用户样式表和 javascript、禁用 iframe、禁用窗口移动等。)。
作为旁注,我记得读过一些关于即将推出的 Opera 版本中此默认行为的更改(关于 XHR)的内容,但我不再确定这一点,因为我在开发快照中输入了此内容,但仍然有默认进度条行为。我想,这就是生活。 :-)
关于javascript - 使用 Opera 在 JavaScript 中更新图像源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11639656/