返回信息流☆─────────────────────────────────────☆
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框架下不行,没反应~~~
这是一条镜像帖。来源:北邮人论坛 / www-technology / #10252同步于 2010/7/5
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖
[合集] [求助]地址栏输入一段JS代码,让网页图片飞起来。代码看
xw2423
2010/7/5镜像同步0 回复
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。