Firefox(v23)在延迟后将图像附加到dom时出现错误(包括JS Fiddle)
Firefox (v23) bug when appending image to dom after delay (JS Fiddle included)
firefox中的以下代码导致图像无法显示在正确的位置。(它应该在视频的中心)。它在chrome和其他浏览器中运行良好。如果图像没有附加到DOM,而是在最初加载,或者在页面加载后重新调整窗口大小,那么它也可以工作。
这种情况只发生在firefox中,我无法想出解决方案。(注意:我们需要在javascript中附加图像,因为这是API调用的结果,我们希望在客户端而不是服务器端进行调用)
JS Fiddle Broken:http://jsfiddle.net/B6eYm/
<!DOCTYPE html>
<html>
<head>
<style>
a.video_link
{
position:relative;
}
img
{
width: 100%;
}
img.videoPlay
{
position:absolute;
left:0;
display:none;
}
.video-main
{
width: 49.16%;
display: block;
float: left;
}
</style>
<script type="text/javascript" src="http://codeorigin.jquery.com/jquery-1.10.2.min.js"></script>
</head>
<body>
<h1>Firefox Bug</h1>
<div class="video-main">
<a class="video_link" data-video-id="2621309976001" href="javascript:void(0);">
<img class="videoPlay" src="http://media.democratandchronicle.com/sites/default/files/icon-videoPlay-wide.png"/>
</a>
</div>
<script type="text/javascript">
setTimeout(function()
{
var video_id = '2621309976001';
var video_still = 'http://bcdownload.gannett.edgesuite.net/rochester/36517057001/201308/796/36517057001_2637049604001_video-still-for-video-2632520077001.jpg?pubId=36517057001';
$("a[data-video-id='" + video_id + "']").append('<img src="'+video_still+'" />').find('.videoPlay').show();
}, 1000);
</script>
</body>
</html>
Js Fiddle工作:http://jsfiddle.net/N9mHe/
<!DOCTYPE html>
<html>
<head>
<style>
a.video_link
{
position:relative;
}
img
{
width: 100%;
}
img.videoPlay
{
position:absolute;
left:0;
display:none;
}
.video-main
{
width: 49.16%;
display: block;
float: left
}
</style>
<script type="text/javascript" src="http://codeorigin.jquery.com/jquery-1.10.2.min.js"></script>
</head>
<body>
<h1>Firefox Bug</h1>
<div class="video-main">
<a class="video_link" data-video-id="" href="javascript:void(0);">
<img style="display: inline;" class="videoPlay" src="http://media.democratandchronicle.com/sites/default/files/icon-videoPlay-wide.png"/>
<img src="http://bcdownload.gannett.edgesuite.net/rochester/36517057001/201308/796/36517057001_2637049604001_video-still-for-video-2632520077001.jpg?pubId=36517057001" />
</a>
</div>
</body>
</html>
如果将display:block
添加到a.video_link
,它应该可以正常工作:
http://jsfiddle.net/B6eYm/1/
相关文章:
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 包括用于facebook评论框的JavaScript SDK
- 如何在DOM元素上按类型构建此函数
- Windows形成web浏览器控件和Javascript更改的DOM
- Datatables:通过DOM数据源中的名称引用列
- 在DOM中查找一个模式并替换它's的内容使用jquery
- DOM事件通过JSON转换为java
- 将DOM节点值与字符串Javascript进行比较
- delete在Object上效率低下,但在DOM Element's的数据属性,与null out相比
- spin.js/angular spinner:如何将spin定位到DOM元素中(包括plunker演示)
- 如何序列化包括影子 DOM 在内的 HTML DOM
- ng包括未插入正确获取的 DOM
- Dojo构建没有't包括dojo/dom、dom/when、dojo/dom-class和大约100个其他模块
- Firefox(v23)在延迟后将图像附加到dom时出现错误(包括JS Fiddle)
- 如何获取Dom对象'的内容包括其本身
- 如何获得所有DOM,包括由JAVASCRIPT生成的
- 将表单值传递给PHP,包括HTML DOM内部的innerHTML
- 覆盖函数以识别任何dom更改,包括像jquery这样的插件