JS笔记整理(四)


3.获取dom元素对象
1)document.getElementById();
2)document.getElementsByTagName();
3)document.getElementsByName();
4)document.getElementsByClassName();
5)document.querySelector("#div1");
6)document.querySelector("h1");
7)document.querySelector(".cls");
8)document.querySelector("#div1 .wei");
9)document.querySelectorAll("h1"); //得到是对象数组
10)document.querySelectorAll(".wei"); //得到是对换数组

4.obj.hasChildNodes()
#判断dom对象是否有子元素

5.obj.childNodes 子节点
6.obj.firstChild
7.obj.lastChild
8.obj.parentElement 父元素 obj.children 子元素
9.obj.parentNode 父节点
10.obj.setAttribute("name","divname");
//obj.attributes 得到的是dom对象的属性对象列表
11.obj.getAttribute("name"); obj.removeAttribute(“name”);

13.js代码区块分为两大块,一块放在head头中,另外一块放在body体内,而且只能放在这两人地方,即使写在body体下放,也是放在body最下方的.
14.sobj=document.getElementById("show");
str='';
for(i in document.body){
str+=i+"==>"+document.body[i]+"<br>";
}
sobj.innerHTML=str;
#本例子中主要说明如何显示document和body的方法和属性,而不能用document.write(),那就把他们的显示结果放到一个div中显示.

16.document.body.insertBefore(new-obj,old-obj);
obj.appendChild();
obj.nextSibling;
obj.previousSibling;
//第二个参数可以为null

17.obj=document.getElementById("div1");
obj2=obj.cloneNode(false);
document.body.appendChild(obj2);
#节点克隆时,obj.cloneNode(true),默认中间为true,即复制div1中的所有数据,但可以只复制div1的结构,而里面的不复制,只需要更改为obj.cloneNode(false);即可.

18.关于属性操作
1)setAttribute()
2)getAttribute()
3)removeAttribute()
19. obj=document.getElementById("div1");
newobj=document.getElementById("hd1");
document.body.replaceChild(newobj,obj);
#这样可以把body中的obj替换为newobj dom对象

20. 获取id的方法
1)document.getElementById("ti");
2)ti
#即可以直接用id来获取对象

21.获取表格中的行:
document.ti.rows.length

22.获取表格行中的列:
document.ti.rows[0].cells.length

23.文档对象中scripts的使用:
document.scripts.length
1)统计后一般一个html页面最多有两个script,一个在head中,一个在body中,不管你在body中有多少script,在body中算一个.

24.关于表格的操作如下:
ti.insertRow(0);
r0=ti.rows[0];
r0.insertCell(0);
r0.cells[0].innerHTML="kkkk";

25.表格的其他操作:
1)rows
2)cells
3)insertRow()
4)insertCell()
5)deleteRow()
6)deleteCell()

35.对数组数据进行升序排列:
function sortNumber(a, b)
{
return a-b;
}
var arr = new Array(6)
arr[0] = "10"
arr[1] = "5"
arr[2] = "40"
arr[3] = "25"
arr[4] = "1000"
arr[5] = "1"
document.write(arr + "<br />")
document.write(arr.sort(sortNumber))
#注意上面的代码中的sortNumber函数,如果函数返回值为>0则调换两个数据的位置,如果<=0,则不变.

36.以下情况下的布尔值为假:
var b1=new Boolean(0)
var b3=new Boolean("")
var b4=new Boolean(null)
var b5=new Boolean(NaN)
var b8=new Boolean(undefined);

38.ajax对象生成:
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

39.ajax对象使用:(ie9,ff,gg)
<html>
<head>
<script type="text/javascript">
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","http://www.w3school.com.cn/ajax/demo_get.asp",true);
xmlhttp.send();
/*post传输数据
xmlhttp.open("POST","index.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("name=user1&age=30");
*/
}
</script>
</head>
<body>
<h2>AJAX</h2>
<button type="button" οnclick="loadXMLDoc()">请求数据</button>
<div id="myDiv"> </div>
</body>
<script>
document.body.οnscrοll=function(){
bs=document.body.scrollTop;
img1.style.top=bs;
}
</script>
</html>
#注意xmlhttp对象用xmlhttp=new XMLHttpRequest();,使用ie5和ie6使用xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

41.ff和ie中如何做到阻止冒泡:
div1.οnclick=function(e){
alert(22222222);
e=window.event ||e;
if(document.all){
e.cancelBubble=true;
}else{
e.stopPropagation();
}
}

43.添加、删除元素的属性和值:
obj=document.getElementById("div1");
obj.setAttribute("class","divc");
obj.removeAttribute("class");

44.在标签中给函数传递event事件:
<img id="img1" οnclick="show(event)" src="1.jpg">
function show(event){
alert(event);
}

45.一般情况下鼠标的坐标可以显示在下面三面:
1)window.location.href="#"+e.clientX+"|"+e.clientY;
2)document.title=e.clientX+"|"+e.clientY;
3)window.status=e.clientX+"|"+e.clientY;

46.元素的宽度和高度:
网页可见区域宽: document.body.clientWidth
网页可见区域高: document.body.clientHeight
Document.body.clientTop
Document.body.clientLeft
网页可见区域宽: document.body.offsetWidth (包括边线的宽)
网页可见区域高: document.body.offsetHeight (包括边线的高)
Document.body.offsetTop
Document.body.offsetLeft
网页正文全文宽: document.body.scrollWidth
网页正文全文高: document.body.scrollHeight
网页被卷去的高: document.body.scrollTop
网页被卷去的左: document.body.scrollLeft
网页正文部分上: window.screenTop
网页正文部分左: window.screenLeft
屏幕分辨率的高: window.screen.height
屏幕分辨率的宽: window.screen.width
屏幕可用工作区高度: window.screen.availHeight
屏幕可用工作区宽度: window.screen.availWidth

47.让图片在最上方,不会随着body的滚动而滚动:
document.body.οnscrοll=function(){
bs=document.body.scrollTop;
img1.style.top=bs;
}

48.获取对象style或外链style样式:
if(document.all){
alert(div1.currentStyle.height);
}else{
alert(document.defaultView.getComputedStyle(div1,null).height);
}

53.js css类操作:
obj=document.getElementById("d2");
obj.className="cls";
#设置obj的类名为cls
alert(obj.className);
#取出obj的类名cls

54.关于a链接的链接颜色问题:
a:link{color:red}
a:hover{color:blue}
a:active{color:#f0f}
a:visited{color:green}
<a href="javascript:void(0)">example</a>
#在ff中一定要注意,可能link颜色会出问题,因为a标签有两种,a.锚点 b.链接,所以href必须写东西,所以有href值的为链接,而只有name的为锚点.

55.往select中创建一个新的option选项:
<script>
op1=document.createElement("option");
//op1=new Option("t2","v2");
sobj=document.getElementById("some_name");
op1.value="v2";
op1.innerHTML="t2";
sobj.add(op1);
//sobj.appendChild(op1);
//sobj.options[sobj.length]=op1;
</script>
#注意, form中的元素最好不要用id来直接来用,最好用getElementById()来获取得到,而且最好静态页面上方要添加dtd头.


58.设计php curl与cookie结合:
<?php
header("content-type:text/html;charset=utf-8");
$ch=curl_init('http://localhost/index.html');
//curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$str=curl_exec($ch);
//echo $str;
#以上代码可能实现直接把url传递给浏览器,然后在本页面打开url的页面,如果想把url的页面赋值给一个变量,可能把上面代码的//注释取掉即可,也就是默认是curlopt_returntransfer为0.

59.window方法setInterval间隔定时器:
<script>
var name="user1";
function show(name){
alert(name);
}
setTimeout("show(name)",3000);
</script>
<script>
var name="user1";
show=function(){
alert(name);
}
setTimeout("show()",3000);
</script>
#注意用setTimeout()或setInterval()时,函数要加引号,否则只能写函数名比如:setTimeout(show,3000);

60.传递鼠标事件:
<script>
alert(click);
function click(event){
alert(event.button);
}
document.οnmοusedοwn=click;
</script>

61.图片跟着鼠标坐标走:
<script>
var obj=document.getElementById("img1");
document.οnmοusemοve=function(e){
obj.style.top=e.clientY+"px";
obj.style.left=e.clientX+"px";
}
</script>
#注意后面的单位px


66. document.inputEncoding
#获取document文档的字符集类型

71.一定要注意鼠标拖拽时空div的w3c bug问题,会出现用鼠标拖拽时onmouseup()函数失效的问题,所以div中一定要有东西来测试:
<html>
<body>
<div id="div1" style="position:absolute;background:#f00;width:100px;height:100px;">
<span>aaaaaaaaaa</span>
</div>
</body>
<script>
var obj=document.getElementById("div1");
var press=0;
obj.οnmοusedοwn=function(e){
press=1;
var startX = e.clientX,startY = e.clientY;
var origX = obj.offsetLeft,origY = obj.offsetTop;
var dx = startX - origX,dy = startY-origY;
document.documentElement.οnmοusemοve=function(e){
if(press){
obj.style.left=(e.clientX-dx)+"px";
obj.style.top=(e.clientY-dy)+"px";
}
}
obj.οnmοuseup=function(){
press=0;
}
}
</script>
</body>

76.学会使用encodeURIComponent()和decodeURIComponent()方法,默认的用$("form").serialize()时,会把表单数据在传递到php端时会用encodeURIComponent()方法加工.
<script>
//encodeURIComponent();
//decodeURIComponent();
var str="name='user1'&age=30";
var str2=encodeURIComponent(str);
//name%3D'user1'%26age%3D30
var str3=decodeURIComponent(str2);
//name='user1'&age=30
</script>


81.设置图片热点设置:
<body>
<img id="id" class="img" src="1.jpg" usemap="#circle">
<map name="circle">
<area shape="circle" coords="109,59,30" href="http://localhost/" >
</map>
</body>

82.通过这种方法可以方便的得到application/x-www-form-urlencoded,免得记不住ajax post传输时的xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
值,如果是文件上传,则:enctype的值为:multipart/form-data:
<body>
<div id="div1">
<form action="" method="get" name="form1">
</form>
</div>
</body>
<script>
alert(document.form1.enctype);
</script>

84.常见的firefox和ie中的兼容性问题:
1).document页面内所有dom元素:document.all
ie支持,ff不支持
2).事件冒泡
ie:
event.cancleBubble=yes;
ff:
event.stopPropogation();
3).window.status;
ie支持,ff不支持
4).鼠标事件
ie:
左-中-右 1 4 2
ff:
左-中-右 0 1 2
5).事件对象
ie七之前:window.event
ie七之后:event
ff:event
obj.οnmοusedοwn=function(event){
e=event
alert(e.clientX);
}
6).body体高度不一样
ie:跟document.documentElement(html)高度相同
ff:高度等于body内dom元素的高度
7).获取dom元素内内容
ie:obj.innerText
ff:obj.textContent
8).元素透明度设置
ie:
Obj=Document.getElementById(“div1”);
obj.style.filter='alpha(opacity=70)’;
Ff:
Obj=Document.getElementById(“div1”);
obj.style.opacity=0.7;
9).阻止右键事件
ie:
event.oncontextmenu()方法
ff:
document.body.οnmοusedοwn=function(e){
e=window.event||e;
if(e.button==2){
alert(2222);
return false;
}
}
10).xmlhttp对象不同
ie七之前:
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
ie七之后:
xmlhttp=new XMLHttpRequest();
ff:
xmlhttp=new XMLHttpRequest();

85.“当页面加载完成时“,有两种层面的意思:
1)页面的dom加载完成时
这种方法可能有两种简单的模拟方法,第一、直接把js代码写到body体之后即可,第二、通过jquery的$(function(){})即可
2)当页面的数据全部加载完毕
第一、window.οnlοad=function(){}
第二、window.document.body.οnlοad=function(){}

86.模拟图片长时间加载时,<img src=”index.php”>,比如加载index.php这个图片延时加载20秒,以下为index.php代码:
Vi index.php
<?php
header('Content-Type: image/jpeg');
readfile("1.jpg");
sleep(20);

87.如果按照以下js输出结果,你会发现前两行不输出任何东西,而后两行输出的是href的地址,一个是baidu、一个是sina,原来原因在于在输出a标签对象时,会直接输出aobj.getAttribute(“href”);的值:
<div id=div1>
<a name="a1">a1111</a>
<a name="a2">e2222</a>
<a name="a3" href=”http://www.baidu.com”>a33333</a>
<a name="a4" href=”http://www.sina.com”>444444</a>
</div>
<script>
var objs=document.anchors;
for(var i=0;i<objs.length;i++){
//document.write(objs[i].name,"=>",objs[i].innerHTML,"<br>");
document.write(objs[i]);
}
</script>

88.在页面中调用swf flash文件,并且设置其宽和高:
<embed style="RIGHT: 10px; POSITION: absolute; TOP: 10px" align=center src=images/文件.swf width="1024" height="580 " type=application/x-shockwave-flash wmode="transparent" quality="high" ;> </embed>

89.各种样式的光标样式: auto:标准光标default:标准箭头
hand:手形光标wait:等待光标text :I形光标vertical-text :水平I形光标no-drop:不可拖动光标not-allowed:无效光标help:帮助光标all-scroll:三角方向标move:移动标crosshair:十字标

90.以下的代码显示一个50px的div块,等点击button后,以每100毫秒20px的速度走到屏幕下方500px处,然后再往回走,走到屏幕最上方,然后以20px的速度再往屏幕下方走:
<body>
<div id=div1 style="position:absolute;top:0;left:0;background:#f00;width:50px;height:50px">
</div>
<button id="button-id" name="button-name" οnclick="show(20)" style="margin-left:200px;">button-text</button>
</body>
<script>
var obj=document.getElementById("div1");
var y=0;
function show(sp){
setInterval(function(){
if(y>=500){
s=-sp;
}
if(y<=0){
s=sp;
}
y+=s;
obj.style.top=y+"px";
},100);
}
</script>
</html>

91.以下代码可能在屏幕上按住向下键,然后div块按照每次5px的速度向下走,一直按住向下键,等div块走到屏幕最下方时,它会自动往上走,走到屏幕最上方再往下走:
<body>
<div id=div1 style="position:absolute;top:0;left:0;background:#f00;width:50px;height:50px">
</div>
</body>
<script>
var obj=document.getElementById("div1");
var y=0;
var ps=5;
var htmly=document.documentElement.clientHeight;
var objy=obj.clientHeight;
var length=htmly-objy;
document.documentElement.οnkeydοwn=function(event){
if(event.keyCode==40){
if(y>=length){
ps=-10;
}
if(y<=0){
ps=10;
}
y+=ps;
obj.style.top=y+"px";
};
}
</script>

92.改变对象原型对象的属性和方法:
<script>
var obj=new Object();
Object.prototype.age=30;
Object.prototype.sex="nan";
var obj2=new Object();
alert(obj2.age);
</script>

93.document常用dom对象数组:
1)frames
window.frames //获取页面中的frame窗口个数或者iframe窗口
2)anchors
document.anchors //获取页面中的锚点,a标签中必须有name属性
3)links
document.links //获取页面中的链接,a标签中必须有href属性
4)images
document.images //获取页面中的图片
5)forms
document.forms //获取页面中的表单
6)elements
document.forms[0].elements //获取表单中的所有input标签
7)options
document.forms[0].elements[2].options //获取表单中下拉列表中的option选项
8)rows
tobj.rows //获取一个表格中的行数
9)cells
tobj.rows[0].cells //获取一个表格中的第一行的中的列数
10)scripts
document.scripts //获取页面中所有的script标签
11)childNodes
obj.childNodes //获取元素的子节点
12)attributes
obj.attributes //获取元素的属性集
13)children //获取子元素集
obj.children

93.元素共有属性:
1.id
2.className
3.style
4.title

94.表单选择:
1.disabled=true|false
2.readonly=true|false
3.checked=true|false
4.selected=true|false

95.拿到dom对象:
1)十种dom数组
2)get
a)getElementById()
b)getElementsByTagName()
c)getElementsByName()
d)getElementsByClassName()
3)node节点操作
a)获取节点
b)创建节点
c)替换节点
d)删除节点

96.event事件:
1)常用事件
onclick
2)鼠标,键盘事件
event.button
event.keyCode
3)阻止冒泡
a)ie:event.cancelBubble=true
b)ff:event.stopPropagation();

97.节点世界:
1)节点名称
2)节点类型
3)节点值
a)属性节点
b)文本节点
4)节点操作:
#document document节点 节点类型:9
doctype doctype节点 节点类型:10
html 元素节点 节点类型:1
head 元素节点 节点类型:1
body 元素节点 节点类型:1
div 元素节点 节点类型:1
id="div1" 属性节点 节点类型:2
aaaaa 文本节点 节点类型:3
5)节点类型:
9 document节点
10 doctype节点
1 元素节点
2 属性节点
3 文本节点
6)节点关系:
a)节点父子关系
childNodes
hasChildNodes()
obj.nodeType
obj.nodeName
obj.nodeValue
obj.firstChild
obj.lastChild
parentNode
b)元素父子关系
obj.children //得到子标签元素,不包含文本节点
obj.parentElement //得到父元素,跟得到父节点相同(obj.parentNode)
c)兄弟关系
1.previousSibling
2.nextSibling
d)节点方法
obj=createElement(“h1”);
obj.appendChild()
obj.insertBefore()
obj.cloneNode()
obj.replaceChild()
obj.removeChild()
e)新建节点
obj=document.creatElement(h1);
obj.innerHTML="aaaaaaaaa";
div1obj.appendChild(obj);
f)属性操作
1.setAttribute("age","30");
2.getAttribute("age");
3.removeAttriute("age");
4.obj.attributes //属性数组

98.js变量类型判断:
1)typeof()
2)obj.constructor
var str=function(){};
alert(str.constructor==String);
alert(str.constructor==Number);
alert(str.constructor==Array);
alert(str.constructor==Object);
alert(str.constructor==Function);
alert(str.constructor==Date);

100.代码复制在ff和ie中实现:
<body>
<div id="div1">
<h1 id="hi" οnclick="show()">ht</h1>
</div>
</body>
<script type="text/javascript">
function copy_clip(copy){
if (window.clipboardData){
window.clipboardData.setData("Text", copy);}
else if (window.netscape){
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
trans.addDataFlavor('text/unicode');
var str = new Object();
var len = new Object();
var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
var copytext=copy;
str.data=copytext;
trans.setTransferData("text/unicode",str,copytext.length*2);
var clipid=Components.interfaces.nsIClipboard;
clip.setData(trans,null,clipid.kGlobalClipboard);}
}
copy_clip("xxxxx");
</script>

101.js中关于事件绑定代码:
ff:
document.addEventListener('mousemove',move_fun,true)
document.addEventListener('mouseup',up_fun,true)
document.removeEventListener('mousemove',move_fun,true)
document.removeEventListener('mouseup',up_fun,true)
ie:
dragEvent.setCapture();
dragEvent.attachEvent('onmousemove',dragMove)
dragEvent.attachEvent('onmouseup',dragStop)
dragEvent.attachEvent('onlosecapture',dragStop)
dragEvent.detachEvent('onlosecapture',up_fun)
dragEvent.detachEvent('onmousemove',dragMove)
dragEvent.detachEvent('onmouseup',dragStop)
dragEvent.releaseCapture();

102.如果想选中div中的h1标签中的字时触发事件,需要在div上设置onselectstart事件:
<body>
<div id=div1>
<h1 id="heading">heading</h1>
</div>
<p><input id="input1" type="text" name="input" value="aaaa"></p>
</body>
<script type="text/javascript">
var obj=document.getElementById("div1");
if(document.all){
obj.attachEvent("onselectstart",show);
}
function show(){
alert(111);
}
</script>
//Ff下没有这个事件

103.用以下代码可以遍历出event事件对象的所有属性和方法:
<body>
<div id=div1 style="position:absolute;left:100px;top:100px;background:#f00">
<img id="imgid" class="img" src="lamp.jpg">
</div>
<div id="div2">
</div>
</body>
<script>
var str="";
imgid.οnclick= function(event){
for(var i in event){
str+=i+"=>"+event[i]+"<br>";
}
div2.innerHTML=str;
}
</script>
//以下为ie和ff的共有的属性->
clientX=>103 //鼠标点击坐标x
clientY=>102 //鼠标点击坐标y
pageX=>103 //鼠标点击坐标x
pageY=>102 //鼠标点击坐标y
layerX=>3 //鼠标点击坐标到目标点击图片的左上角的x距离
layerY=>2 //鼠标点击坐标到目标点击图片的左上角的y距离
target=>[object HTMLImageElement] //鼠标点击的对象
timeStamp=>42230375 //事件发生的时间

104.html页面中静态文件的加载过程如下:
1)js 与页面同步加载,即遇到js文件时,直接去下载,下载时页面元素不往下走,只有等js全部加载完毕,并解析后,页面元素再往下走
2)css 与页面同步加载,即遇到css文件时,直接去下载,下载时页面元素不往下走,只有等css使用加完毕,并解析后,页面元素再往下走
3)img 与页面异步加载,即遇到img文件时,直接去下载,同步页面元素继续往下走,等图片下载完后,即加入到页面中元素中进行重新布局
//js和css属性解析性脚本

105.在html中实例化代码让html元素标签原样输出,而不解析:
<xmp>
<div>test</div>
</xmp>

106.页面往上滚动的的距离,在这个测试中可以看到给window设置onscroll事件,然后通过html元素的scrollTop得到滚动的高:
<script>
window.οnscrοll=function(){
document.title=document.documentElement.scrollTop;
};
//谁拥有onscroll事件呢,window、document、body三个人都有,一般可能body用的多一些
</script>

107.setCapture捕获事件,但只能捕获鼠标事件:
<div id="m_Div" style="width:200px;height:200px;border:1px solid #b0bca5;padding:2px" οnclick="alert('Hello')">点一下IE窗口外的地方</div>
<SCRIPT LANGUAGE="JavaScript">
document.getElementById("m_Div").setCapture()
</SCRIPT>

108.在页面加载过程中同时加载css用link,而当页面加载完毕后再加载css用@import@import方式:
加载顺序的差别。当一个页面被加载的时候(就是被浏览者浏览的时候),link引用的CSS会同时被加载,而@import引用的CSS会等到页面全部被下载完再被加载。所以有时候浏
览@import加载CSS的页面时开始会没有样式(就是闪烁),网速慢的时候还挺明显(梦之都加载CSS的方式就是使用@import,我一边下载一边浏览梦之都网页时,就会出现上述问题)
1)
<style>
@import “mystyle.css”;
</style>
2)
<link href=”mystyle.css” rel=”stylesheet” type=”text/css”>

111.以下代码可以通过apply实现js类的继承的问题:
<script>
function person(obj){
this.name=obj;
this.say=function(){
alert(this.name);
};
}
function stu(){
person.apply(this,arguments);
this.run=function(){
alert(this.name);
}
}
function stu2(){
stu.apply(this,arguments);
}
var s=new stu2("user1");
s.run(); //user1
s.say(); //user1
</script>

112.四种js特殊方法:
Call()
call([thisObj[,arg1[, arg2[, [,.argN]]]]])
call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象
Apply()
apply([thisObj[,argArray]])
应用某一对象的一个方法,用另一个对象替换当前对象
Caller()
functionName.caller
返回一个对函数的引用,该函数调用了当前函数
下面的例子说明了 caller 属性的用法:
function CallLevel(){
if (CallLevel.caller == null)
return("CallLevel was called from the top level.");
else
return("CallLevel was called by another function.");
}
Callee()
[function.]arguments.callee
返回正被执行的 Function 对象,也就是所指定的 Function 对象的正文
说明
callee 属性是 arguments 对象的一个成员,仅当相关函数正在执行时才可用。
callee 属性的初始值就是正被执行的 Function 对象。这允许匿名的递归函数。
示例
function factorial(n){
if (n <= 0)
return 1;
else
return n * arguments.callee(n - 1)
}
print(factorial(3));

114.a标签结合iframe实现无刷新从php取数据:
index.html=>
<body>
<h1 id="hid">test</h1>
<iframe style="display:none" name="fname"></iframe>
<a href="index.php" target="fname">example</a>
</body>
<script type="text/javascript">
function callback(data){
alert(data);
}
</script>
Index.php=>
echo "<script>parent.callback('aaaaa')</script>";
最后实现的效果是在index.html上点击a标签后,会把php上输出的js代码输出.

115.from表单标签结合iframe实现无刷上传图片和附件:
Index.html=>
<form action="index.php" id="form1" name="form1" encType="multipart/form-data" method="post" target="hidden_frame" >
<input type="file" id="file" name="file" style="width:450">
<INPUT type="submit" value="上传文件"><span id="msg"></span>
<br>
<font color="red">支持JPG,JPEG,GIF,BMP,SWF,RMVB,RM,AVI文件的上传</font>
<iframe name='hidden_frame' id="hidden_frame" style='display:block'></iframe>
</form>
<script type="text/javascript">
function callback(msg)
{
imgid.src=msg;
}
</script>
Index.php=>
move_uploaded_file($_FILES['file']['tmp_name'],$_FILES['file']['name']);
$file=$_FILES['file']['name'];
echo "<script>parent.callback('".$file."')</script>";

116.在js中(function(){})()的用法:
(function(i){alert(i)})(“aaaaaaa”);
直接给匿名函数传入参数并执行本函数.

117.测试中文的正则表达式:
var str="abc李";
for(var i=0,l=str.length;i<l;i++){
document.write(str[i],"|",/[\u4e00-\u9fa5]/.test(str.charAt(i)),"<br>");
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值