日期:2014-05-17  浏览次数:20426 次

JS函数调用带有两个参数的链接串出现问题,请高手赐教,急!
用asp.net做了一个flash图片新闻模块,调用一个JS函数,内容如下:

function default_GetXml(spic,slinks,stexts,sfocus_width,sfocus_height,stext_height,divid)
{
var shtml = "";
var focus_width = sfocus_width;
var focus_height = sfocus_height;
var text_height = stext_height;
var pics = spic;
var links = slinks;
var texts = stexts;
var swf_height = parseInt(focus_height)+parseInt(text_height);
shtml += '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="'+ focus_width +'" height="'+ swf_height +'">';
shtml += '<param name="allowScriptAccess" value="sameDomain"><param name="movie" value="flash/picflash.swf"><param name="quality" value="high"><param name="bgcolor" value="#EbEbEb">';
shtml += '<param name="menu" value="false"><param name=wmode value="opaque">';
shtml += '<param name="FlashVars" value="pics='+pics+'&links='+links+'&texts='+texts+'&borderwidth='+focus_width+'&borderheight='+focus_height+'&textheight='+text_height+'">';
shtml += '<embed src="flash/picflash.swf" wmode="opaque" FlashVars="pics='+pics+'&links='+links+'&texts='+texts+'&borderwidth='+focus_width+'&borderheight='+focus_height+'&textheight='+text_height+'" menu="false" bgcolor="#EbEbEb" quality="high" width="'+ focus_width +'" height="'+ swf_height +'" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />';
shtml += '</object>';
document.getElementById(divid).innerHTML = shtml;
}

在html中调用asp.net页面中生成的参数。例如:
<%Response.Write("<script type='text/javascript'>default_GetXml('" + imgUrl+ "','" + imgLink+ "','" + imgTitle+ "','320','240','18','image')</script>");%> 


当其中的imgUrl是Display?ID=123时没有问题,但是我加了页面分页功能,又多加了一个传递参数:Display?Page=1&ID=123。这时点击图片时,打开的链接是Display?Page=1,后面的ID=123丢掉了,显示页面出错。我在asp.net页面跟踪结果imgUrl=Display?Page=1&ID=123,但是调用完JS就不行了。
我想是不是因为函数中&links='、'&texts这样的字符串里的"&"与参数&ID=123里的"&"冲突了?该怎样解决?

请高手赐教,谢谢!

------解决方案--------------------
将参数中的"&"符号编码一下,设置变量links = slinks.replace(/\&/g,"%26");