收录日期:2018/08/15 02:08:10 时间:2016/05/22 09:12:19 标签:JavaScript
函数如下:
这是一个随机显示广告的函数,里面的ADList_0.是变量名字(不同类型广告变量不同),问题就在这里,由于广告的输出方式都是一样的,但是变量名不同,有很多广告要显示,如果为每个广告单独做一个函数,好像有些傻,不知道有什么办法在变量通过选值传送到函数里?我初学JAVASCRIPT,很多不懂,望各位高手赐教.

function AD_TopBanner(){
var thisads = ADList_0.ADType.length;
var now = new Date()
var sec = now.getSeconds()
var k = sec % thisads;
switch(ADList_0.ADMode[k]){
case "1":
document.write('<a href=\"' + ADList_0.ADUrl[k] + '\" target=\"_blank\">');
document.write('<img src=\"' + ADList_0.ADCode[k] + '\" width=')
document.write(ADList_0.ADWidth[k] + ' height=' + ADList_0.ADHeight[k] + ' ');
document.write('alt=\"' + ADList_0.ADText[k] + '\" border=0 valign=\"absmiddle\"></a>');
break;
case "2":
document.write('<OBJECT codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,2,0 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 width=\"'+ADList_0.ADWidth[k]+'"\" height=\"'+ADList_0.ADHeight[k]+'\"><PARAM NAME=movie VALUE=\"'+ADList_0.ADCode[k]+'\"><PARAM NAME=quality VALUE=high><embed src=\"'+ADList_0.ADCode[k]+'\" quality=high pluginspage=\"http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash\" type=\"application/x-shockwave-flash\" width=\"'+ADList_0.ADWidth[k]+'\" height=\"'+ADList_0.ADHeight[k]+'\">'+ADList_0.ADCode[k]+'</embed></OBJECT>');
break;
case "3":
document.write(ADList_0.ADCode[k]);
break;
}
}
var arrAdType = {"ad0","ad1","ad2",.....}
for(i=0;i<arrAdType.length;i++)
   var thisads = ADList_0[arrAdType[i]]length;


可以用window["函数名字符串"]来取函数
如window["alert"]("It is ok!!!!");

具体你自己设计吧
又如:
<script>
function foo(){
alert("It is ok");
}
window["foo"]();
</script>
嗯,你的方法可以,我自己要睡觉的时候也找到方法了,呵呵,每次睡觉的时候头脑特别清晰 :)

代码如下:
function AD_TopBanner(ADList){
var thisads = ADList.ADType.length;
var now = new Date()
var sec = now.getSeconds()
var k = sec % thisads;
switch(ADList.ADMode[k]){
case "1":
document.write('<a href=\"' + ADList.ADUrl[k] + '\" target=\"_blank\">');
document.write('<img src=\"' + ADList.ADCode[k] + '\" width=')
document.write(ADList.ADWidth[k] + ' height=' + ADList.ADHeight[k] + ' ');
document.write('alt=\"' + ADList.ADText[k] + '\" border=0 valign=\"absmiddle\"></a>');
break;
case "2":
document.write('<OBJECT codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,2,0 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 width=\"'+ADList.ADWidth[k]+'"\" height=\"'+ADList.ADHeight[k]+'\"><PARAM NAME=movie VALUE=\"'+ADList.ADCode[k]+'\"><PARAM NAME=quality VALUE=high><embed src=\"'+ADList.ADCode[k]+'\" quality=high pluginspage=\"http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash\" type=\"application/x-shockwave-flash\" width=\"'+ADList.ADWidth[k]+'\" height=\"'+ADList.ADHeight[k]+'\">'+ADList.ADCode[k]+'</embed></OBJECT>');
break;
case "3":
document.write(ADList.ADCode[k]);
break;
}
}