当 CSS 显示“无要阻止”时,对象标记将重新加载
object tag reloads when css display none to block
我有一个html页面,其中包含一个包含svg对象的对象标签。 每次包含div 上的显示从无更改为块时,svg 对象都会重新加载。 这会导致为 svg 对象生成加载事件。 这发生在Chrome中,但不发生在Firefox中。
这是 Chrome 中的错误,还是正确的行为? 我知道浏览器有时会延迟加载,直到元素可见,但我认为它们不应该在每次显示更改时重新加载。 我知道我可以使用 visibility=hidden 但这是一个大型遗留库的一部分,该库具有许多样式依赖项,因此更改起来并不容易。
下面是演示问题的最小代码片段(在 chrome 上)。 我在 Windows 39 上使用 chrome 7。
<body>
<script src="http://code.jquery.com/jquery-1.11.1.js"></script>
<script>
$(document).ready(function () {
var toggle = 0;
$('#button').on('click', function () {
if (toggle % 2 == 0) {
$('#www').css('display', 'none');
} else {
$('#www').css('display', 'block');
}
toggle++;
});
});
</script>
<div id="www">
<object id="ggggg" name="ggggg" type="image/svg+xml" data="http://upload.wikimedia.org/wikipedia/commons/b/b0/NewTux.svg" width="583" height="471"> </object>
</div>
<input type="button" value="abcd" id="button"/>
</body>
我不确定这是否是一个错误。 我不认为 CSS 定义了当显示设置为 none 时浏览器应该如何处理缓存资产。 这里的一位浏览器开发人员可能知道。
但是,您可以尝试以下替代方法:
- 将对象移出页面,例如。(位置:绝对;左:-9999px;}
- 折叠对象,例如。{宽度: 0; 高度: 0}
相关文章:
- 数据表 AJAX 筛选器重新加载数据
- 在1个Json对象中加载2个php变量,以便在图中使用
- 如何在新加载的页面上执行(下拉)操作
- 根据上一个选项卡的选择器重新加载选项卡
- 如何检查<对象>是否加载失败
- 获得“中止,因为不接受 0”并使用反应热加载器重新加载整页
- 如何制作从对象动态加载的图形
- 咕噜咕噜的手表:实时加载重新加载落后 1 步....
- 检测或阻止从对象标记加载页面
- 如何为新加载的元素提供JQuery UI工具提示
- 如何在新加载的页面上使用相同的JavaScript代码(通过重定向)
- 使用PHP或Javascript检测页面刷新或新加载
- 砌体重新加载&reloadItems不起作用
- 执行脚本如果插件<对象>无法加载标签
- JavaScript启动得太快了.对象未加载
- 如何使javascript计时器重新加载
- 如何获取新加载的图像's width / naturalWidth
- Javascript:如何“杀死”?对象的加载
- 当对象正在加载时,在innerHTML中显示LOADING
- Angular抛出一个错误'未捕获对象'页面加载