【问题标题】:Javascript querystring parameter flashvar with swfobject带有 swfobject 的 Javascript 查询字符串参数 flashvar
【发布时间】:2011-05-05 08:33:44
【问题描述】:

在网页的 head 部分使用 javascript 函数,我已经能够解析查询字符串并将其作为 flashvar 发送到 swf,构造嵌入其中一个 JS 函数的对象,如下所示:

...

function writeFlash() {
 var width = '1024'
 var height = '500'
 var src = 'j.swf'
 var queries = 'im='+QueryString('im')+'.jpg'
 var l1 = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" width="'+width+'" height="'+height+'">;'
 var l2 = '<param name="movie" value="'+src+'" />;'
 var l6 = '<param name="flashvars" value="'+queries+'" />;'
 var l3 = '<param name="quality" value="high" />;'
 var l4 = '<embed src="'+src+queries+'" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="'+width+'" height="'+height+'"></embed>;'
 var l5 = '</object>'
 document.write(l1+l2+l6+l3+l4+l5)
}

....

在页面的正文中,我调用该函数来打开这样的 swf。

...

<script language="JavaScript" type="text/javascript">
<!-- 
writeFlash();
-->
</script> 

...

我正在尝试改用 SWFobject(我也在其他地方使用它来加载 JW 播放器)。当我尝试将我的嵌入转换为 swfobject 代码时,我无法以多种我尝试过的方式将 flashvar 洗牌,请帮忙。

【问题讨论】:

    标签: javascript swfobject flashvars querystringparameter


    【解决方案1】:

    但是为什么在flash中你可以这样做ExternalInterface.call("eval", "document.location.search")

    也不要使用 swfobject。看看静态发布,这对于新浏览器来说更干净更好。

    这是一个例子:

    <!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" lang="en" xml:lang="en">
      <head>
        <title>SWFObject - step 3</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <script type="text/javascript" src="swfobject.js"></script>
    
        <script type="text/javascript">
        swfobject.registerObject("myId", "9.0.115", "expressInstall.swf");
        </script>
      </head>
      <body>
        <div>
          <object id="myId" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="780" height="420">
            <param name="movie" value="myContent.swf" />
            <!--[if !IE]>-->
            <object type="application/x-shockwave-flash" data="myContent.swf" width="780" height="420">
            <!--<![endif]-->
              <p>Alternative content</p>
            <!--[if !IE]>-->
            </object>
            <!--<![endif]-->
          </object>
        </div>
      </body>
    </html>
    

    【讨论】:

    • 这样可以吗? param name="movie" value="myContentswf'+document.location.search+'"
    • 不,这只是一个示例。在您的 Flash 文件中,您仍然需要通过调用 eval(document.location.search) 向您返回查询字符串来执行我所做的操作。当 flash 可以获取它时,没有理由传递它。
    猜你喜欢
    • 1970-01-01
    • 2015-06-09
    • 2016-07-10
    • 1970-01-01
    • 1970-01-01
    • 2021-09-24
    • 2023-02-25
    • 2014-03-01
    相关资源
    最近更新 更多