0

嗨,我有一些代码可以与 Jquery 一起使用,并且可以在除 ie 之外的所有浏览器中完美运行(而且它似乎不适用于任何 ie 浏览器 -7、8、9)。Jquery代码如下..任何人都可以看到问题:

$(document).ready(function () {
            var obj = $('object')
     .wrap('<div id="test"></div>')
     .find('embed').attr('src', function (i, s) { return s + '&enablejsapi=1&version=3' }).end()
     .find('param[name=movie]').attr('value', function (i, v) { return v + '&enablejsapi=1&version=3' }).end()
     .detach()
     .appendTo($('#test'));

            $(document).ready(function () {
                $("#emsbinstartbutton").click(function () {
                    //Then assign the src to null, this then stops the video been playing
                    obj.find('embed')[0].pauseVideo();
                    $("body").append($("<div>").css({
                        position: "fixed"
        , width: "640px"
        , height: "425px"
        , "background-color": "#000"
        , opacity: 0.6
        , "z-index": 999
        , top: 0
        , left: 0
                    }).attr("id", "page-cover"));

                    $("#threebytwo").show();
                });
            });

当用户单击立即购买按钮时,此代码会弹出一个小部件:

 $("#threebytwo").show();

这是整个代码的 jsfiddle,您可以在 Firfox chrome 和 safari 中看到 wokring,但在 ie 中不起作用。

http://jsfiddle.net/M46rZ/5/

我查了一下,看到了一个技巧,你将元数据标签设置为 8,但我已经尝试过了,但它没有奏效。

我想我需要阅读更多关于跨浏览器问题的内容,因为我不断遇到它们,但不胜感激!

编辑 很抱歉澄清实际问题是什么 - 当您单击立即购买按钮时,应该会弹出一个

编辑 2

正如其中一条评论所指出的,正是这一行停止了代码的工作,即:

obj.find('embed')[0].pauseVideo();

谢谢

4

1 回答 1

0

在您的小提琴中,视频参数中有一个尾随空格:

<param name="movie" value="http://www.youtube.com/v/fBZTbCrM2eQ&amp;hl=en_US&amp;fs=1&wmode=opaque ">

在你的 js 操作之后变成:

<param name="movie" value="http://www.youtube.com/v/fBZTbCrM2eQ&hl=en_US&fs=1&wmode=opaque &enablejsapi=1&version=3">

我不确定这是否足以破坏使用<object>而不是的浏览器<embed>,但它可能值得尝试删除。

我尝试删除您小提琴中的空格,但出于某种奇怪的原因,编辑拒绝生效。

于 2013-02-15T10:28:34.407 回答