收录日期:2019/04/26 10:19:29 时间: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;
}
}

请教基本的socket的编程 VC6的IDE + VC2003的编译器/SDK,合并后的调试问题! 怎么用串口发指令给诺基亚手机发短信 急:关于Worksheets(sheetName).Range(range)的问题 今天无聊,到淘宝走了一下,但…… 为什么我在MYSQL里面设置时间默认为NOW(),结果它显示的是00-00-00 00:00:00 简单的弹出窗口问题! 急 ~~~~~~~~~~~~~~~~ [大飞猪] 举直错诸枉,则民服;举枉错诸直,则民不服。 读取文本文件,怎么取得每行的某段字符串?在线等,分不够再加~~~~ asp.net 怎么发不出去信呀?帮我看看吧!! 提问 请回答 今天遇到一个怪问题,不知是为什么? 【生活小专家】:大家知道水源哪里才是真正的色情中心吗?告诉你们。是过滤词库,刚刚我打开一看,傻眼了! 急:一个很简单的问题,请大家帮忙 怎么搜索出字段中含有“SD”,但是不是包含在“MSD”中的数据 VB打包时的困惑,非常的有难度!!!! 怎么发不出贴呀 版主帮帮我 如何用jsp得到访问用户的ip地址? 如何在htm页面中运行asp程序 JAVA数据结构!进来看下,肯定值得思考!! 关于ClientDataSet控件中filter属性设置过滤的问题 在线等待,谢过各位了!!!! 诚请热心人帮忙,关于GDI+在asp.net画图保存的问题 把分给第一个发现问题的 请问这几家公司怎么样? 急!!!我创建的dialog工程中为什么看不到WM_ERASEBKGND这个消息呢?OnEraseBkgnd是怎么加进去的 mfc里面的PASCAL关键字有么子用? 关于图片显示 请教DBGridEh的输入保存数据问题 DataGrid中checkbox取值问题。谢谢!