js趣味代码

写了个chrome的插件实现自动填写表单的,用的是js,然后在网上搜索了一些,整理了一些js的趣味代码,如下:

把这个粘贴到ff或chrome的地址栏中,找一个有图的网址:




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+'px'; DIS.top=Math.cos(R*y1+i*y2+y3)*y4+y5+'px'}R++}setInterval('A()',5); void(0);




IE下:
javascript:R=0;%20x1=.1;%20y1=.05;%20x2=.25;%20y2=.24;%20x3=1.6;%20y3=.24;%20x4=300;%20y4=200;%20x5=300;%20y5=200;%20DI=document.images;%20DIL=DI.length;%20function%20A(){for(i=0;%20i-DIL;%20i++){DIS=DI[%20i%20].style;%20DIS.position='absolute';%20DIS.left=Math.sin(R*x1+i*x2+x3)*x4+x5;%20DIS.top=Ma




JavaScript除了直接嵌入到HTML或通过js文件调用执行外,还可以在IE、火狐等浏览器的地址栏里直接输入代码后按回车键来执行,即使不懂js代码,也可通过对js代码复制粘贴的操作轻松实现相应的网页功能效果。下面是从abcd数据库转载的一些实用的js代码:




解除网页不允许复制的设置
javascript :document.οncοntextmenu="return true";document.onselectstart="return true";document.body.onselectstart="return true";document.body.οnselect="return true";document.body.οncοpy="return true";document.body.onbeforecopy="return true";document.body.οncοntextmenu="return true";document.body.οnmοuseup="return true";void 0; 




将网页转换为编辑模式
javascript :document.body.contentEditable='true'; document.designMode='on'; void(0);




显示网页源代码
javascript :s=document.documentElement.outerHTML;document.body.innerText="<textarea rows=30  cols=90>"+s+"</textarea>";




只显示网页中的图片
javascript :Ai7Mg6P='';for%20(i7M1bQz=0;i7M1bQz<document.images.length;i7M1bQz++){Ai7Mg6P+='<img%20src='+document.images[i7M1bQz].src+'><br>'};if(Ai7Mg6P!=''){document.write('<center>'+Ai7Mg6P+'</center>');void(document.close())}else{alert('No%20images!')}




只显示网页中的文字
javascript :for(jK6bvW=0;jK6bvW<document.images.length;jK6bvW++){void(document.images[jK6bvW].style.visibility='hidden')}




计算器
javascript : alert(123+456*789-54321);




以明文方式显示网页密码框中的密文
javascript :(function(){var s,F,j,f,i;s="";F=document.forms;for(j=0;j<F.length;++j){f=F[j];for(i=0;i<f.length;++i){if(f[i].type.toLowerCase()=="password")s+=f[i].value+"\n";}}if(s)在地址栏输入下面的代码按enter,网页上所有元素都能变成可编辑状态,你可以移动、调整元素大小。如果你只是讨厌某个网站想发泄一下,我建议你使用NetDisater。




代码如下:




javascript:document.body.contentEditable='true'; document.designMode='on'; void 0




这是经重新编辑的google.cn:alert("Passwords in forms on this page:\n\n"+s);else alert("There are no passwords in forms on this page.");})(); 




晃来晃去




不但是你,浏览器也不是那么喜欢这个javascript。在地址栏运行这个代码后,浏览器会迅速地晃来晃去。代码如下:




javascript:function flood(n) {if (self.moveBy) {for (i = 200; i &gt; 0;i--){for (j = n; j &gt; 0; j--) {self.moveBy(1,i); self.moveBy(i,0);self.moveBy(0,-i); self.moveBy(-i,0); } } }}flood(6);{ var inp = "D-X !msagro na dah tsuj resworb rouY"; var outp = ""; for (i = 0; i &lt;= inp.length; i++) {outp =inp.charAt (i) + outp ; } alert(outp) ;}; reverse




如果这个代码无效,请将"&gt;"改成">","&It;'改成"<"。






防钓鱼验证




某些钓鱼网站提供的URL和网页本身的URL是不一致的,你可以用下面的代码进行验证,当两个URL相差太大的时候,你就要稍加小心了:




javascript:alert("The actual URL is:tt" + location.protocol + "//" + location.hostname + "/" + "nThe address URL is:tt" + location.href + "n" + "nIf the server names do not match, this may be a spoof.");


0. 前言
所谓IE地址栏表达式,就是在IE的地址栏中输入 javascript:<代码>,执行某些功能,来动态改变原有页面的参数以达到某些目的,例如开放被禁止的按钮、显示原本隐藏的图片等等。本文将就IE地址栏的使用方法做一个详细的说明。
1. 表达式的书写方法
在IE的地址栏中输入 javascript:<代码>,即可在当前页面上直接执行指定的代码并立即看到效果。而且,<代码>中可以包含多条语句,甚至可以包含 if/for 等流程控制语句。
代码一般有两种写法:
javascript:<表达式>
该写法将会执行表达式,并将表达式的结果在当前页面内显示。
javascript:<函数>
该表达式将会执行指定的函数,而当前页面的显示不会受到影响。
那么IE如何区分地址栏中输入的代码到底是函数还是表达式?其实很简单,代码的最后一条语句以参数列表 () 结束,则作为函数处理,不更新页面显示;代码的最后一条语句不以 () 结束,则作为表达式处理,在当前页面内显示表达式的计算结果。
例如,在IE的地址栏中输入:
javascript:1+2
该表达式的末尾并非参数列表,因此IE将1+2看作表达式,执行结果将显示在当前窗口内:
3
而下面这段代码:
javascript:alert("Hello, world!")
代码末尾为参数列表,因此IE将其看作函数,执行之后将出现弹出窗口,但是网页的内容不会有任何变化。再如,
javascript:alert
该代码执行后,当前窗口内显示:
[object]
这是因为代码末尾不是参数列表,因此IE将其作为表达式来处理。alert 为 window 对象的一个方法,也算作“[object]”,所以出现了上面的结果。
再看下面的例子:
javascript:a=1;b=2;c=3;alert(a+b*c)
虽然该段代码中包含了赋值表达式和alert()函数,但由于代码最末尾是参数列表,因此页面内容不会更新。
2. 将表达式转化为函数
通常我们希望使用 javascript:<函数> 这种格式,因为 javascript:<表达式> 会改变页面内容而使得修改失去意义。但有时我们不得不使用赋值表达式来达到目的,这就需要将表达式转换为函数来执行。这就需要利用一个特殊的函数:void()。该函数带有一个参数。
比较常用的转化方式有两种。一种是将表达式作为void()函数的参数,例如:
javascript:void(a=1)
执行之后页面内容没有任何变化,但是页面内名为a的变量已经赋值为1了。另一种方法是在整个代码的最后执行void()函数,例如:
javascript:a=1;void(0)
也可以达到同样的效果。
在网上通常可以找到一些网页的hack代码,例如:
javascript:void(document.all.btn1.disabled=false);void(document.all.btn2.disabled=false)
该段代码对每一个表达式执行了一次 void()函数。实际上有更简单的方法,只需要执行一次即可:
javascript:document.all.btn1.disabled=false;document.all.btn2.disabled=false;void(0)
3. 常用hack代码
这里介绍一些常用的 hack 代码段,大家可以灵活运用。
3.1 查找页面内元素
使用 document 对象的 all 集合和 getElement 系列方法可以轻易地找到页面上各种元素。如果知道一个元素的id(假设为myelement),则可以通过下面两种方式获得该元素:
document.all.myelement
document.getElementById('myelement')
如果不知道元素的id,但知道元素的HTML标签名(假设为TAGNAME),则可以通过下面的代码获得所有相同标签的元素:
document.getElementsByTagName('TAGNAME')
返回值为一个集合,通过该集合的 item 方法可以获取其中的一个元素。例如,修改页面上的第三个超链接的颜色为绿色:
javascript:document.getElementsByTagName('A').item(2).style.color="green";void(0)
将页面上所有的 TD 元素的背景颜色修改为红色:
javascript:tds=document.getElementsByTagName('TD');for(i=0;i<tds.length;i++){tds.item(i).style.backgroundColor="red";}void(0)
3.2 定义函数
可以在地址栏中直接书写function语句来定义函数。例如,先在地址栏中输入:
javascript:function hello(){alert("Hello!");}
确定之后,再次在地址栏中输入:
javascript:hello()
即可看到弹出窗口。
3.3 显示效果类特效
通过各个元素的 style.zoom 属性可以设置该元素的显示比例。例如,将页面整体显示比例扩大为150%:
javascript:document.style.zoom='150%';void(0)
通过各个元素的 style.display 和 style.visibility 属性可以显示/隐藏该元素。style.display=""可以显示元素,style.display="none"可以隐藏元素,而且被隐藏的元素不会占用页面位置,就像根本不存在一样;style.visibility=false可以隐藏元素,但是被隐藏的元素还会保持原有的位置和大小;style.visibility=true可以显示元素。例如,隐藏所有图片:
javascript:a=document.getElementsByTagName('IMG');for(i=0;i<a.length;i++)a.item(i).style.visibility=false;void(0)
3.4 其他
显示页面所有链接:
javascript:a=document.getElementsByTagName("A");newwindow=window.open("newwindow");newwindow.document.open();for(i=0;i<a.length;i++){newwindow.document.write("<a href='"+a.item(i).href+"'>"+a.item(i).innerText+"</a><br>");}newwindow.document.close();void(0)


  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值