Javascript 在安装flash之后,swfobject仍然不会嵌入视频,直到我重新加载原始页面

Javascript 在安装flash之后,swfobject仍然不会嵌入视频,直到我重新加载原始页面,javascript,flash,swfobject,Javascript,Flash,Swfobject,我有一个简单的html页面和一些javascript,如果我点击一个链接,它将使用swfobject.embedSWF函数在div中显示一个flash视频 function replaceDiv () { var flashVars = {}; var params = {}; flashVars["lang"] = "en"; params["menu"] = "

我有一个简单的html页面和一些javascript,如果我点击一个链接,它将使用swfobject.embedSWF函数在div中显示一个flash视频

function replaceDiv () {
                var flashVars = {};
                var params = {};

                flashVars["lang"] = "en";

                params["menu"] = "false";
                params["wmode"] = "opaque";
                params["allowScriptAccess"] = "always";
                params["allowFullScreen"] = "true"; 
                params["bgcolor"] = "#fff";

                //add video
                swfobject.embedSWF("http://www.youtube.com/v/uZ0LL1SJ-6U?enablejsapi=1&playerapiid=ytplayer", "videoContainer",640, 480, "9.0.0", null, flashVars, params,{})
}
我做了一个测试:

  • 从我的机器上卸载flash,然后重新加载页面并单击链接…我正确地看到没有视频

  • 然后我安装了flash并返回到同一页面(没有重新加载),嵌入仍然无法工作

  • 我知道在SWFObject1.5(我现在使用的是2.2)中,我可以在用户安装flash后嵌入swf,但是现在用户需要重新加载页面才能让flash出现。这对我目前的处境不利,有人知道这里发生了什么吗

    以下是使用youtube视频的示例代码:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <title>SWFOBJECT TEST</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 
        <script src='https://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js' type='text/javascript'></script>
        <script src='http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js' type='text/javascript'></script>
        <style>
            #link{
                display:block;
                margin-bottom:10px;
            }
            #videoContainer{
                width:610px;
                height:360px;
            }
        </style>
        <script type="text/javascript">
            $(document).ready(function(){
                $("#link").click(function(){
                    var flashVars = {};
                    var params = {};
    
                    flashVars["lang"] = "en";
    
                    params["menu"] = "false";
                    params["wmode"] = "opaque";
                    params["allowScriptAccess"] = "always";
                    params["allowFullScreen"] = "true"; 
                    params["bgcolor"] = "#fff";
    
                    //add video
                    swfobject.embedSWF("http://www.youtube.com/v/uZ0LL1SJ-6U?enablejsapi=1&playerapiid=ytplayer", "videoContainer",640, 480, "9.0.0", null, flashVars, params,{});
                });
            });
        </script>
    </head>
    <body>
        <a href="#" id="link">Click me</a>
        <div id="videoContainer"></div>
    </body>
    </html>
    
    
    SWFOBJECT测试
    #链接{
    显示:块;
    边缘底部:10px;
    }
    #视频容器{
    宽度:610px;
    高度:360px;
    }
    $(文档).ready(函数(){
    $(“#链接”)。单击(函数(){
    var flashVars={};
    var params={};
    flashVars[“lang”]=“en”;
    参数[“菜单”]=“假”;
    参数[“wmode”]=“不透明”;
    参数[“allowScriptAccess”]=“始终”;
    参数[“allowFullScreen”]=“true”;
    参数[“bgcolor”]=“#fff”;
    //添加视频
    swfobject.embeddeswf(“http://www.youtube.com/v/uZ0LL1SJ-6U?enablejsapi=1&playerapiid=ytplayer“,“videoContainer”,640480,“9.0.0”,null,flashVars,params,{});
    });
    });
    
    如果您将swfEmbed调用从jquery中取出,它就可以工作。我并没有深入研究,但我做到了:

    <a href="javascript:replaceDiv()" id="link">Click me</a>
    
    然后,我每次都删除了所有现有的JS和VOILA-works

    如果您希望我实际调试JQuery,请告诉我;我可以补充一点,它看起来非常好。我不知道你可能还需要别的东西

    -A


    注:Squarepusher是一只野兽P

    感谢您的测试,但是它仍然无法解决我的问题,如下所示。卸载flash,在任何浏览器中加载该页面,下载flash,返回浏览器并尝试单击…在刷新页面之前,它仍然无法工作…不是jQuery问题。