Flash 对象在动态添加到 IE 中的 DOM 时不起作用
Flash object doesn't work when dynamically added to the DOM in IE
我正在 ajax 请求 jQuery returns 一些 html 然后我将 html 插入 DOM. HTML如下:
<div class="entry-details">
<div class="brightcove-player-wrap">
<!-- Start of Brightcove Player -->
<div style="display:none">
</div>
<!--
By use of this code snippet, I agree to the Brightcove Publisher T and C
found at https://accounts.brightcove.com/en/terms-and-conditions/.
-->
<script language="JavaScript" type="text/javascript" src="http://admin.brightcove.com/js/BrightcoveExperiences.js"></script>
<object id="myExperience4733627893001" class="BrightcoveExperience">
<param name="bgcolor" value="#FFFFFF" />
<param name="width" value="1130" />
<param name="height" value="500" />
<param name="playerID" value="4732606104001" />
<param name="playerKey" value="AQ~~,AAABAzMvv-k~,LozjqgbLEy1mFJ0QaG0FQ_ctTc2aT68o" />
<param name="isVid" value="true" />
<param name="isUI" value="true" />
<param name="dynamicStreaming" value="true" />
<param name="@videoPlayer" value="4733627893001" />
</object>
<!--
This script tag will cause the Brightcove Players defined above it to be created as soon
as the line is read by the browser. If you wish to have the player instantiated only after
the rest of the HTML is processed and the page load is complete, remove the line.
-->
<script type="text/javascript">brightcove.createExperiences();</script>
<!-- End of Brightcove Player -->
</div>
<div class="entry-like">
<a href="" data-entry-id="291" class="btn btn-lime">Like <i class="icon-thumbs-up"></i></a>
</div>
<div class="entry-intro">
<span>Submitted by:</span> Geoff Meierhans<br>
<span>Location:</span> United Kingdom<br>
<span>Likes:</span> 0 </div>
<br>
<div class="question-1">
<h4>What message would you like to give to lung cancer patients?</h4>
<p>This is my message</p>
</div>
<br>
<div class="request-removal">
<a href="http://local.tagrisso.com/request_removal/291" class="btn btn-mulberry">Request Removal <i class="icon-remove icon-white"></i></a>
</div>
</div>
这在 chrome 中工作正常,但在任何版本的 IE 中均无效。如果在页面加载时该对象已经在页面上,它可以正常工作并且可以播放视频,但是当我使用 jQuery 动态插入它时,视频不会出现在 IE 中。
Could not complete the operation due to error 80020101
这是 jQuery 我使用的 jQuery 1.9.1 版:
var request = $.ajax({
url: "user/get_message",
method: "POST",
data: { id : entryId },
dataType: "html",
cache: false
});
request.done(function(html) {
$('#entry-info').html(html);
});
有人知道为什么会这样吗?解决方法是什么?
更新
我设法在 IE8 及更高版本中通过在页面加载时包含 brightcove js 文件而不是动态地修复它。因此,将以下行从 ajax 响应移至主要 DOM:
<script language="JavaScript" type="text/javascript" src="http://admin.brightcove.com/js/BrightcoveExperiences.js"></script>
虽然它在 IE7 中仍然不起作用,有人知道为什么吗?
最后我不得不创建一个只有视频的空白页面,然后动态添加一个显示该视频的 iframe。
我正在 ajax 请求 jQuery returns 一些 html 然后我将 html 插入 DOM. HTML如下:
<div class="entry-details">
<div class="brightcove-player-wrap">
<!-- Start of Brightcove Player -->
<div style="display:none">
</div>
<!--
By use of this code snippet, I agree to the Brightcove Publisher T and C
found at https://accounts.brightcove.com/en/terms-and-conditions/.
-->
<script language="JavaScript" type="text/javascript" src="http://admin.brightcove.com/js/BrightcoveExperiences.js"></script>
<object id="myExperience4733627893001" class="BrightcoveExperience">
<param name="bgcolor" value="#FFFFFF" />
<param name="width" value="1130" />
<param name="height" value="500" />
<param name="playerID" value="4732606104001" />
<param name="playerKey" value="AQ~~,AAABAzMvv-k~,LozjqgbLEy1mFJ0QaG0FQ_ctTc2aT68o" />
<param name="isVid" value="true" />
<param name="isUI" value="true" />
<param name="dynamicStreaming" value="true" />
<param name="@videoPlayer" value="4733627893001" />
</object>
<!--
This script tag will cause the Brightcove Players defined above it to be created as soon
as the line is read by the browser. If you wish to have the player instantiated only after
the rest of the HTML is processed and the page load is complete, remove the line.
-->
<script type="text/javascript">brightcove.createExperiences();</script>
<!-- End of Brightcove Player -->
</div>
<div class="entry-like">
<a href="" data-entry-id="291" class="btn btn-lime">Like <i class="icon-thumbs-up"></i></a>
</div>
<div class="entry-intro">
<span>Submitted by:</span> Geoff Meierhans<br>
<span>Location:</span> United Kingdom<br>
<span>Likes:</span> 0 </div>
<br>
<div class="question-1">
<h4>What message would you like to give to lung cancer patients?</h4>
<p>This is my message</p>
</div>
<br>
<div class="request-removal">
<a href="http://local.tagrisso.com/request_removal/291" class="btn btn-mulberry">Request Removal <i class="icon-remove icon-white"></i></a>
</div>
</div>
这在 chrome 中工作正常,但在任何版本的 IE 中均无效。如果在页面加载时该对象已经在页面上,它可以正常工作并且可以播放视频,但是当我使用 jQuery 动态插入它时,视频不会出现在 IE 中。
Could not complete the operation due to error 80020101
这是 jQuery 我使用的 jQuery 1.9.1 版:
var request = $.ajax({
url: "user/get_message",
method: "POST",
data: { id : entryId },
dataType: "html",
cache: false
});
request.done(function(html) {
$('#entry-info').html(html);
});
有人知道为什么会这样吗?解决方法是什么?
更新
我设法在 IE8 及更高版本中通过在页面加载时包含 brightcove js 文件而不是动态地修复它。因此,将以下行从 ajax 响应移至主要 DOM:
<script language="JavaScript" type="text/javascript" src="http://admin.brightcove.com/js/BrightcoveExperiences.js"></script>
虽然它在 IE7 中仍然不起作用,有人知道为什么吗?
最后我不得不创建一个只有视频的空白页面,然后动态添加一个显示该视频的 iframe。