当我们用swfobject的时候,传递参数一般是so.addVariable("xmlPath", "a.asp"),但是如果我们想传带&号的参数,如a.asp?id=1&num=2
so.addVariable("xmlPath", "a.asp?id=1&num=2") ,这样flash只能得到a.asp?id=1而得不到&后面的值
两套解决方案:
1.改成a.asp?id=1|num=2....
把&改成可以用的任何符号.但是别跟你的整个字符串有冲突就行了..然后在FLASH中将a.asp?id=1|num=2..中的|替换成& ;目前都是用这种方法..替换函数需要自己去写..
2.你可以对地址进行escape编码;然后在flash中解码;如上.你可以先dim url="a.asp?id=1&num=2"... 然后在这里so.addVariable("xmlPath", escape(url));
在flash中使用的时候只需要unescape(xmlPath)就可以得到正确的值了...
//加载flash图表
function loadSwf(siteID,strDate,strEDate,lType,computeType) {
var flashvars = { "data-file": escape("/zh-CN/Chart/WebSiteHistoryLine?siteId="+siteID + "&sDate="+strDate+"&eDate="+strEDate+"&lType="+lType+"&strPage="+encodeURIComponent(strPUrl)+"&computeType="+computeType) }; //这里是数据源
swfobject.embedSWF("@Url.Content("~/Content/ofc/open-flash-chart.swf")", "months","750", "300", "9.0.0", "expressInstall.swf",flashvars);
}