[size=medium][b]8. JavaScript 中 this 的含义[/b][/size]
函数中的this
当函数被调用时,函数中的this指向函数的调用者。函数属于某个对象,当通过该对象对这个函数进行调用时,函数中的this指向该对象。
比如jQuery的对象构造方法中的下面这条语句:
return new jQuery.fn.init( selector, context, rootjQuery );
init方法是jQuery.fn这个对象的方法,它被调用时,init中的this就指向jQuery.fn这个对象。
[size=medium][b]7. JavaScript 中 attachEvent和addEventListener的区别[/b][/size]
document.addEventListener
是针对Mozilla, Opera 等浏览器。它的调用形式如下:
document.addEventListener( "click", method01, false );
第三个参数是useCapture,是一个boolean值;如果是true,表示让浏览器使用Capture方式,false的话是Bubbling,建议使用false,受影响的情形是目标元素(target element)有祖先元素(ancestor element),而且也有同样事件的对应函数。
可以往同一个dom元素的同一个事件里加入若干个方法,按照加入的顺序,最先加入的方法先执行。
document.attachEvent
是针对IE 浏览器。调用形式如下:
window.attachEvent( "onload", method);
可以往同一个dom元素的同一个事件里加入若干个方法,按照加入的顺序,最后加入的方法先执行。
[size=medium][b]6. JavaScript 手册(CoreGuideJS14.pdf)阅读笔记[/b][/size]
逻辑运算符:参见附件(CoreGuideJS14.pdf)中的Chapter 3, Expressions and Operators, page 45.
比较运算符:参见附件(CoreGuideJS14.pdf)中的Chapter 3, Expressions and Operators, page 41.
[size=medium][b]5. javascript中的括号用法[/b][/size]
针对上面的这句代码,前面的()就是一个求值,括号内的值类型是function。 js里面函数也是变量。 函数变量后面加括号,当然就是执行函数了。按照ecma 3.0规范,函数也是一个对象,而“()”(写在函数后面)则是运算符,表示“执行”。
[size=medium][b]4. 两个方法出现同名时并都被加载到页面时,在不带iframe的tab页切换时,会引起方法调用混乱。[/b][/size]
[size=medium][b]3. 两个HTML页面之间的传值[/b][/size]
[quote]
两个HTML页面之间的传值(通过截取url获得)
假如有两个页面分别是m.html和n.html。
m.html代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<SCRIPT LANGUAGE="JavaScript">
function test(){
var s = document.getElementById("txt");
location.href="n.html?"+"txt="+s.value;
}
</SCRIPT>
</HEAD>
<BODY>
<input type="text" id="txt">
</br>
<input type="button" value="TEST" οnclick="test()"/>
</BODY>
</HTML>
n.html代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<SCRIPT LANGUAGE="JavaScript">
function getvalue(name){
var str=window.location.search; //location.search是从当前URL的?号开始的字符串
例如:http://www.51job.com/viewthread.jsp?tid=22720
它的search就是?tid=22720
if (str.indexOf(name)!=-1){
var pos_start=str.indexOf(name)+name.length+1;
var pos_end=str.indexOf("&",pos_start);
if (pos_end==-1){
alert( str.substring(pos_start));
}else{
alert("对不起这个值不存在!");
}
}
</SCRIPT>
</HEAD>
<BODY>
<input type="button" οnclick="getvalue('txt')" value="GO-GetValue"/>
</BODY>
</HTML>
这个方法可以取到,但是目前为止,个人觉得还不是很好的方法。要是俩个页面有例如父子关系,还是比较好取。有时间这两天我会继续的关注这个问题的。
[/quote]
[size=medium][b]2.<a href='javascript:function()'>的含义[/b] [/size]
[quote]
这样写是为了让这个链接不要链接到新页面转而执行一段js代码。
和onclick能起到同样的效果,一般来说,如果要调用脚本还是在onclick事件里面写代码,而不推荐在href='javascript:function()' 这样的写法,因为 href 属性里面设置了js代码后,在某些浏览器下可能会引发其他不必要的事件。造成非预期效果。
而且 onclick事件会比 href属性先执行,所以会先触发 onclick 然后触发href,所以如果不想页面跳转,可以设置 onclick里面的js代码执行到最后返回一个false,这样 href 里面的东西就不会执行了。(注:在js代码里加了false的返回值,依然会执行href的动作。此处有歧义。)
在ajax应用程序中,多写着下面的这样 ,以表示这个链接不跳转,而执行一段js脚本。
<a href="javascript:void(0);" οnclick="function()"></a>
或者 <a href="javascript:;" οnclick="function()"></a>
(注:该写法可以生效。)
void(0) 只是用来计算一个空值,其实也是什么事情都不做,
而分号“;”则表示是一个空的js语句,这样就不会有任何其他跳转发生了,
而且W3C标准不推荐在href里面执行javascript语句,所以还是用 onclick事件触发吧
[/quote]
[size=medium][b]1. JS 处理文件浏览器[/b][/size]
需要在IE中打开安全设置,设置非安全activeX为可用。
函数中的this
当函数被调用时,函数中的this指向函数的调用者。函数属于某个对象,当通过该对象对这个函数进行调用时,函数中的this指向该对象。
比如jQuery的对象构造方法中的下面这条语句:
return new jQuery.fn.init( selector, context, rootjQuery );
init方法是jQuery.fn这个对象的方法,它被调用时,init中的this就指向jQuery.fn这个对象。
[size=medium][b]7. JavaScript 中 attachEvent和addEventListener的区别[/b][/size]
document.addEventListener
是针对Mozilla, Opera 等浏览器。它的调用形式如下:
document.addEventListener( "click", method01, false );
第三个参数是useCapture,是一个boolean值;如果是true,表示让浏览器使用Capture方式,false的话是Bubbling,建议使用false,受影响的情形是目标元素(target element)有祖先元素(ancestor element),而且也有同样事件的对应函数。
可以往同一个dom元素的同一个事件里加入若干个方法,按照加入的顺序,最先加入的方法先执行。
document.attachEvent
是针对IE 浏览器。调用形式如下:
window.attachEvent( "onload", method);
可以往同一个dom元素的同一个事件里加入若干个方法,按照加入的顺序,最后加入的方法先执行。
[size=medium][b]6. JavaScript 手册(CoreGuideJS14.pdf)阅读笔记[/b][/size]
逻辑运算符:参见附件(CoreGuideJS14.pdf)中的Chapter 3, Expressions and Operators, page 45.
比较运算符:参见附件(CoreGuideJS14.pdf)中的Chapter 3, Expressions and Operators, page 41.
[size=medium][b]5. javascript中的括号用法[/b][/size]
(function(){})();
针对上面的这句代码,前面的()就是一个求值,括号内的值类型是function。 js里面函数也是变量。 函数变量后面加括号,当然就是执行函数了。按照ecma 3.0规范,函数也是一个对象,而“()”(写在函数后面)则是运算符,表示“执行”。
[size=medium][b]4. 两个方法出现同名时并都被加载到页面时,在不带iframe的tab页切换时,会引起方法调用混乱。[/b][/size]
[size=medium][b]3. 两个HTML页面之间的传值[/b][/size]
[quote]
两个HTML页面之间的传值(通过截取url获得)
假如有两个页面分别是m.html和n.html。
m.html代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<SCRIPT LANGUAGE="JavaScript">
function test(){
var s = document.getElementById("txt");
location.href="n.html?"+"txt="+s.value;
}
</SCRIPT>
</HEAD>
<BODY>
<input type="text" id="txt">
</br>
<input type="button" value="TEST" οnclick="test()"/>
</BODY>
</HTML>
n.html代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<SCRIPT LANGUAGE="JavaScript">
function getvalue(name){
var str=window.location.search; //location.search是从当前URL的?号开始的字符串
例如:http://www.51job.com/viewthread.jsp?tid=22720
它的search就是?tid=22720
if (str.indexOf(name)!=-1){
var pos_start=str.indexOf(name)+name.length+1;
var pos_end=str.indexOf("&",pos_start);
if (pos_end==-1){
alert( str.substring(pos_start));
}else{
alert("对不起这个值不存在!");
}
}
</SCRIPT>
</HEAD>
<BODY>
<input type="button" οnclick="getvalue('txt')" value="GO-GetValue"/>
</BODY>
</HTML>
这个方法可以取到,但是目前为止,个人觉得还不是很好的方法。要是俩个页面有例如父子关系,还是比较好取。有时间这两天我会继续的关注这个问题的。
[/quote]
[size=medium][b]2.<a href='javascript:function()'>的含义[/b] [/size]
[quote]
这样写是为了让这个链接不要链接到新页面转而执行一段js代码。
和onclick能起到同样的效果,一般来说,如果要调用脚本还是在onclick事件里面写代码,而不推荐在href='javascript:function()' 这样的写法,因为 href 属性里面设置了js代码后,在某些浏览器下可能会引发其他不必要的事件。造成非预期效果。
而且 onclick事件会比 href属性先执行,所以会先触发 onclick 然后触发href,所以如果不想页面跳转,可以设置 onclick里面的js代码执行到最后返回一个false,这样 href 里面的东西就不会执行了。(注:在js代码里加了false的返回值,依然会执行href的动作。此处有歧义。)
在ajax应用程序中,多写着下面的这样 ,以表示这个链接不跳转,而执行一段js脚本。
<a href="javascript:void(0);" οnclick="function()"></a>
或者 <a href="javascript:;" οnclick="function()"></a>
(注:该写法可以生效。)
void(0) 只是用来计算一个空值,其实也是什么事情都不做,
而分号“;”则表示是一个空的js语句,这样就不会有任何其他跳转发生了,
而且W3C标准不推荐在href里面执行javascript语句,所以还是用 onclick事件触发吧
[/quote]
[size=medium][b]1. JS 处理文件浏览器[/b][/size]
需要在IE中打开安全设置,设置非安全activeX为可用。
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>JS实现打开文件夹对话框</title>
</head>
<script language="javascript">
function chooseFolder(){
var savePath;
var objSrc=new ActiveXObject("Shell.Application").BrowseForFolder(0,'请选择文件目录:',0,'');
if(objSrc!=null){
savePath=objSrc.Self.Path;
document.getElementsByName("savePath")[0].value=savePath;
}
}
</script>
<body>
<input type="text" size="30" name="savePath"/>
<input type="button" name="chosefolderbutton" value="选择" onclick="chooseFolder()"/>
<input type=button value=选择路径 onclick="window.confirm(BrowseFolder())">
<input type="file" id="f">
alert(document.getElementById("f").value);//打印路径
<script>
function BrowseFolder()
{
var Message="请选择文件夹";
var Shell=new ActiveXObject("Shell.Application");
var Folder=Shell.BrowseForFolder(0,Message,0x0040,0x11);
if(Folder!=null)
{
Folder=Folder.items();//返回FolderItems对象
Folder=Folder.item();//返回Folderitem对象
Folder=Folder.Path;//返回路径
if(Folder.charAt(Folder.length-1)!="\\")
{
Folder=Folder+"\\";
}
return Folder;
}
}
</script>
</body>
</html>