收录日期:2019/01/20 03:15:38 时间: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;
}
}

如何防止一个java应用程序有两个进程在同时运行? 请教一个问题~! “蜀中无人?”,可悲,一个问题我问了好几天,竟还没人帮忙 核心由自己开发的虚拟主机管理系统,数据库系统用的是别人的,大家可以看看 100分在线送分!回者送分! DirectShow 中如何实现两个filter graph不产生冲突? 求救各位大虾VB界面上的数据库连接以及查询,慷慨送分。 论c#是不是骗人的。 基础的基础,在线等 SQLServer表中如何消除重复?还有问题。 大侠帮帮忙啊, db.getdocumentUNID(aa)这句程序,当数据库中根本没有aa这个文档id的时候程序就不运行了? 大家好,我是l0vebcb,LoveWorldForever以及LoveWorldForever_007,大家认识我吗? 请教一个棘手的excel问题 SQL语句查询表中某一列如何去掉重复项呢 “All instances of the license \"\" are in use. VA will be disabled.”如何解决? 急救:可执行JAR包,路径设置问题 在线等待! 当系统插入了一个可移动磁盘的时候怎么等到这个消息? 当系统插入了一个可移动磁盘的时候怎么等到这个消息? 当系统插入了一个可移动磁盘的时候怎么等到这个消息? update多条记录的问题,高分,在线等 就10分了,问一个字符串转换问题? 拖滚动块时候,nTrackPos 自动存放当前滚动块位置? 一个简单问题! 如何求枚举类型定义中枚举值的个数? 一个算法问题 如何在一服务器上放置多个网站 大家好,我想问个问题,关于如何在asp中禁止html,但是有能够贴图片——希望指教 jb9中如何引入这个包? 如何自定义事件? 我写了一首诗,大家看看还行吗??????????????????????