前天和昨天大致浏览了犀牛书的函数、类与模块、正则表达式、JavaScript扩展、以及服务端的js。这些方面对于我目前的水平来说比较难,一些最基本的概念都不能领会。不过最复杂的知识占用平时使用的20%,而最简单的知识却占平时使用的80%。本着先学会使用,后继续研究的学习道路,这些内容就暂且搁置,等js主干知识都学习完了,再来看这部分内容。
正文
一、系统、浏览器、网页、Javascript之间的关系。
有必要在学习jsDOM之前先来了解一下这四者之间的关系。
-
系统为浏览器提供基本的运行环境。一个系统里面可以安装很多的浏览器,firefox,chrome 、IE等等,操作系统为浏览器提供调用计算机硬件的API;
-
浏览器为网页提供基本的运行环境,一个浏览器里可以跑很多的网页。
-
一个网页里面可以镶嵌多个其他的网页(通过iframe)。
-
浏览器提供了javascript的解析引擎,js是一中面向对象的编程语言,因此我们可以操作不同的对象(API)来操作数据或者是页面中的元素(DOM结构)。
二、了解DOM对象。
前几天我的笔记上已经说了,第二天笔记http://www.cnblogs.com/roverliang/p/4979538.html。
引用如下:
js的对象是一个大对象,当create一个页面的时候,就会被js构造器(construct)创造出来 数组对象(Array)、函数对象(function)、日期对象(date)、正则对象(RegExp)以及错误对象(Error).
上面的对象是js的对象,当渲染一个页面的时候,js也会为当前的一个页面生成一个叫window的全局对象。
window对象又有很多属性:
- location对象。
- document对象,一般称为DOM。
- hsitory
- navigator
windows对象的方法:
- alert() 方法。 //这里的方法我们可以理解为函数。
- setTimeout 方法。
- setInterval 方法。
- prompt
- confirm
- showModalDialog
三、了解window对象的属性以及方法
window对象指的就是当前我们的这个窗口,也就是当前打开的这个网页。
window对象的一些方法:
-
setTimeout 与 setInterval
//2秒之后弹个2
setTimeout(function(){
alert(2);
},2000);
//每隔两秒弹个3
setInterval(function(){
alert(3);
},2000);
window 对象的一些属性:
location对象
document.location = window.location; //返回truea;
location对象下面也有很多属性与方法:
-
location.toString() 方法返回当前的url。
var urlpath = location.toString(); -
protocol 网络服务的协议名,如https: 或者http: 返回时带:的。
-
host 返回域名
-
hostname 同host。
-
port 返回“”
-
pathname 返回路径
-
search 返回路径?参数。
-
assign 方法。
-
replace 方法
-
reload() 方法
在书上看到一个关于拼接解析url的原生js代码非常好,抄下来。
<script>
function urlArgs(){
var args = {};
var query = location.search.substring(1);
var pairs = query.split('&');
for(var i=0;i<pairs.length;i++){
var pos = pairs[i].indexOf('=');
if(pos == -1) continue;
var name = pairs[i].substring(0,pos);
var value = pairs[i].substring(pos+1);
value = decodeURIComponent(value);
args[name] = value;
}
return args;
}
</script>
history对象
- back方法 后退
- forward 方法 前进
- go 可以前进也可以后退。
navigator 对象
- userAgent属性,发送user-Agent http 头部发送的字符串。包含很多的信息。可以判断浏览器以及内核。
- platform 属性,返回当前的操作系统,测试了下,并不是十分准。
- geolaction 属性 返回当前用户的地理位置。
- cookieEnable 属性,检测当前的cookie是否可用。返回true或者false。
screen对象
这个对象第一次用,返回用户的电脑屏幕宽度高度,夜色的位深等等。