BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / www-technology / #10252同步于 2010/7/5
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖

[合集] [求助]地址栏输入一段JS代码,让网页图片飞起来。代码看

xw2423
2010/7/5镜像同步0 回复
☆─────────────────────────────────────☆ eminemheaton (阿修罗) 于 (Thu Oct 15 14:08:54 2009) 提到: 随便打开一个有图片的网站,在地址栏里输入: javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.images; DIL=DI.length; function A(){for(i=0; i-DIL; i++){DIS=DI[ i ].style; DIS.position='absolute'; DIS.left=Math.sin(R*x1+i*x2+x3)*x4+x5; DIS.top=Math.cos(R*y1+i*y2+y3)*y4+y5}R++}setInterval('A()',5); void(0); 我大概明白这是取出网页文档中所有的图片,改变position属性,并每隔5毫秒用两个个sin cos函数动态改变图片的位置。 但我不明白最后一句代码 void(0); 的作用。为什么不加上这个void(0);,网页只显示一串数字呢?? ☆─────────────────────────────────────☆ dickfu (潇湘天下|小付寨主) 于 (Thu Oct 15 14:41:15 2009) 提到: javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200;x5=300; y5=200; DI=document.images; DIL=DI.length; function A(){for(i=0; i-DIL;i++){DIS=DI[ i ].style; DIS.position='absolute'; DIS.left=Math.sin(R*x1+i*x2+x3)*x4+x5; DIS.top=Math.cos(R*y1+i*y2+y3)*y4+y5}R++}setInterval('A()',5); alert(0); 这样也可以啊 【 在 eminemheaton (阿修罗) 的大作中提到: 】 : 随便打开一个有图片的网站,在地址栏里输入: : javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.images; DIL=DI.length; function A(){for(i=0; i-DIL; i++){DIS=DI[ i ].style; DIS.position='absolute'; DIS.left=Math.sin(R*x1+i*x2+x3)*x4+x5; DIS : 我大概明白这是取出网页文档中所有的图片,改变position属性,并每隔5毫秒用两个个sin cos函数动态改变图片的位置。 : ................... ☆─────────────────────────────────────☆ dickfu (潇湘天下|小付寨主) 于 (Thu Oct 15 14:44:23 2009) 提到: 可以理解为一个bug吧 在IE的地址栏中输入 javascript:<代码>,即可在当前页面上直接执行指定的代码并立即看到效果。而且,<代码>中可以包含多条语句,甚至可以包含 if/for 等流程控制语句。 代码一般有两种写法: javascript:<表达式>该写法将会执行表达式,并将表达式的结果在当前页面内显示。 javascript:<函数>该表达式将会执行指定的函数,而当前页面的显示不会受到影响。 那么IE如何区分地址栏中输入的代码到底是函数还是表达式?其实很简单,代码的最后一条语句以参数列表 () 结束,则作为函数处理,不更新页面显示;代码的最后一条语句不以 () 结束,则作为表达式处理,在当前页面内显示表达式的计算结果。 【 在 dickfu (潇湘天下|小付寨主) 的大作中提到: 】 : javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200;x5=300; y5=200; DI=document.images; DIL=DI.length; function A(){for(i=0; i-DIL;i++){DIS=DI[ i ].style; DIS.position='absolute'; DIS.left=Math.sin(R*x1+i*x2+x3)*x4+x5; DIS.t : 这样也可以啊 ☆─────────────────────────────────────☆ dickfu (潇湘天下|小付寨主) 于 (Thu Oct 15 14:52:49 2009) 提到: 所以把整个代码块写到一个匿名函数里面去就不用写void(0)了 像这样 javascript:(function(){R=0;x1=.1;y1=.05;x2=.25;y2=.24;x3=1.6;y3=.24;x4=300;y4=200;x5=300;y5=200;DI=document.images;DIL=DI.length;function A(){for(i=0;i-DIL;i++){DIS=DI[i].style;DIS.position='absolute';DIS.left=Math.sin(R*x1+i*x2+x3)*x4+x5;DIS.top=Math.cos(R*y1+i*y2+y3)*y4+y5}R++}setInterval(A,5)})() 【 在 dickfu (潇湘天下|小付寨主) 的大作中提到: 】 : 可以理解为一个bug吧 : 在IE的地址栏中输入 javascript:<代码>,即可在当前页面上直接执行指定的代码并立即看到效果。而且,<代码>中可以包含多条语句,甚至可以包含 if/for 等流程控制语句。 : 代码一般有两种写法: : ................... ☆─────────────────────────────────────☆ eminemheaton (阿修罗) 于 (Thu Oct 15 15:45:05 2009) 提到: 呵呵 谢谢版主 2楼的帖子我看明白了 javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.images; DIL=DI.length; function A(){for(i=0; i-DIL; i++){DIS=DI[ i ].style; DIS.position='absolute'; DIS.left=Math.sin(R*x1+i*x2+x3)*x4+x5; DIS.top=Math.cos(R*y1+i*y2+y3)*y4+y5}R++}setInterval('A()',5); 任意函数();就可以了 不过你在3楼的代码我不是很明白 javascript:(function(){匿名函数...})() 为什么function(){匿名函数...}外面有个括号呢? ☆─────────────────────────────────────☆ dickfu (潇湘天下|小付寨主) 于 (Thu Oct 15 16:12:01 2009) 提到: 匿名函数是没有函数名的.... 匿名函数返回一个函数,原型就是这样的:() 这个括号里面是参数...也就是那个function 匿名函数返回一个函数 第二个括号表示对匿名函数返回的函数的调用.... 不知道这么说你看不看得明白... 【 在 eminemheaton (阿修罗) 的大作中提到: 】 : 呵呵 谢谢版主 : 2楼的帖子我看明白了 : javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.images; DIL=DI.length; function A(){for(i=0; i-DIL; i++){DIS=DI[ i ].style; DIS.position='absolute'; DIS.left=Math.sin(R*x1+i*x2+x3)*x4+x5; DIS : ................... ☆─────────────────────────────────────☆ eminemheaton (阿修罗) 于 (Thu Oct 15 16:23:39 2009) 提到: 看明白了,就是说 (参数)() 就是在调用一个匿名函数 那如果有两个匿名函数 function (){代码1} function (){代码2} ()(); 这么写合法吗?解释器怎么会知道第三行是调用的谁呢? 呵呵 js真灵活 没这么直接调用过匿名函数,还真不习惯 ^ ^! ☆─────────────────────────────────────☆ dickfu (潇湘天下|小付寨主) 于 (Thu Oct 15 16:30:56 2009) 提到: 参数是传给匿名函数的参数...一般就是那个function... 匿名函数不是指你自己定义的没有函数名的function..... 匿名函数用法一般是这样的.. (function(){代码})(); 【 在 eminemheaton (阿修罗) 的大作中提到: 】 : 看明白了,就是说 (参数)() 就是在调用一个匿名函数 : 那如果有两个匿名函数 : function (){代码1} : ................... ☆─────────────────────────────────────☆ eminemheaton (阿修罗) 于 (Thu Oct 15 16:37:46 2009) 提到: 终于明白了 (function(){代码})(); 就是在执行第一个()内的匿名函数 呵呵 以前真没这么用过匿名函数,一般就是把匿名函数拿来用作另一个函数的参数 谢谢版主: ) ☆─────────────────────────────────────☆ TopCaver (屾顶洞人—BookMoth转世) 于 (Thu Oct 15 22:05:29 2009) 提到: 最近匿名函数有满天飞的趋势~~~ ☆─────────────────────────────────────☆ uriel (D-uriel|人生八苦之死也吃不饱~~) 于 (Fri Oct 23 00:46:45 2009) 提到: 应该是只有ie才行吧? ☆─────────────────────────────────────☆ eminemheaton (阿修罗) 于 (Fri Oct 23 16:14:12 2009) 提到: 我试了下火狐也行啊。 ☆─────────────────────────────────────☆ youyo (左手倒影|右手年华) 于 (Fri Nov 20 19:44:42 2009) 提到: NB这贴要顶! ☆─────────────────────────────────────☆ aaaaaa (风之痕) 于 (Sun Nov 22 21:26:28 2009) 提到: 嗯,挺帅的 ☆─────────────────────────────────────☆ zjlelf (小曾||刷天下||保护环境,人人有责) 于 (Tue Nov 24 18:28:03 2009) 提到: 搜狗好像不行,IE可以。 ☆─────────────────────────────────────☆ handnan (好人) 于 (Tue Dec 1 16:01:55 2009) 提到: 试了下 JSP的structs框架下不行,没反应~~~
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。