在动态添加到IE

时间:2016-02-03 12:23:05

标签: javascript jquery flash internet-explorer object

我正在使用jQuery执行ajax请求,返回一些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版本1.9.1中使用的jQuery:

var request = $.ajax({
    url: "user/get_message",
    method: "POST",
    data: { id : entryId },
    dataType: "html",
    cache: false
});

request.done(function(html) {
    $('#entry-info').html(html);
});

任何人都知道为什么会发生这种情况以及解决方案可能是什么?

更新

我设法通过在页面加载而不是动态地包含brightcove js文件来在IE8及更高版本中修复它。因此,将以下行从ajax响应移动到主DOM中:

<script language="JavaScript" type="text/javascript" src="http://admin.brightcove.com/js/BrightcoveExperiences.js"></script>

但它仍然无法在IE7中运行,任何人都知道为什么?

1 个答案:

答案 0 :(得分:0)

最后,我必须创建一个只包含视频的空白页面,然后只需动态添加一个显示该视频的iframe。