DOM对象和内置对象
Ø 本章总结了alert()、prompt()、confirm()与用户交互
Ø getElementById()选择页面元素
Ø 使用InnerHtml()访问HTML内容
Ø 使用浏览器history()对象
Ø 通过navigator对象获得浏览器信息
Ø 利用Date对象操作日期和时间
与用户交互
Alert()
Alert()没有返回值,模态对话框,只有一个确定按钮,点击完后程序才能继续
Confirm()
有返回值:真或者假,模态对话框,两个按钮“确定”和取消,点击完才能继续
Prompt()
有返回值,取决于用户进行了什么操作
Var answer = prompt(“what is yourname”,”tom”);
Ø 如果用户输入了信息,然后点击确定或者回车键,返回值就是输入字符串
Ø 没有输入信息,返回值就是调用prompt()方法设置的第二个参数
Ø 如果用户简单关闭了对话框(点击取消或者ESC按键),返回的是null
注:JavaScript 在多种情况下使用null表示空值,作为数值时候,它代表0;作为字符串,它代表空字符串“”,作为布尔值,它代表假
根据id选择元素
Js可以通过特定唯一id的调用document对象的getElementById()方法,获取到DOM对象
VarmyDiv = document.getElementById(“id”);
利用innerHTML()可以访问HTML中的内容,是一个字符串
Var myDivContent =myDiv.innerHTML;(“<p>here is getElementById innerHTML</p>”);
利用innerHTML可以设置选定元素内容:
myDiv.innerHTML= “<p>here is anotherinnerHTML content</P>”
访问浏览器历史记录
浏览器历史是保存在window.history对象中,存储的是url列表,可以使用这个列表,但是无法修改。
Forward()和backward()是前进和后退,history().next()是下一个页面
History.go(-2)表示回退三个页面
History.go(3)表示前进三个页面
History(“index.com”),找到历史记录列表中第一个匹配的url
Location对象
Location 对象包含当前加载页的URL信息
页面URL组成部分:
[协议]//[主机名]:[端口]/[路径][搜索][hash]
下面是一个URL范例:
http://www.example.com:8080/tools/display.php?section=435#list
属性 |
内容 |
Location.href |
http://www.example.com:8080/tools/display.php?section=435#list |
Location.protocol |
http: |
Location.host |
|
Location.hostname |
|
Location.port |
8080 |
Location.pathname |
/tools/display.php |
Location.search |
?section=534 |
Location.hash |
#list |
使用location对象导航
利用location对象有两种方式跳转到新的页面
第一种:直接设置对象的href属性
Location.href=’www.newpage.com’;当前页会存储在浏览器历史,通过backward可以返回
第二种是locatoin的replace方法,删除当前页面的历史记录,替换新的页面
Location.replace(‘www.newpage.com’);
刷新页面
如果要在浏览器里面重新加载当前页面,相当于刷新,可以用reload()方法
注:如果使用没有参数的reload()方法,如果浏览器缓存了当前页面内容,会加载缓存的内容,为避免这种情况,确保从服务器读取,在调用reload中加入参数true;
Reload(true);
浏览器信息:navigator对象
Navigator保存了浏览器程序本身的数据
在浏览器中按F12进入开发者模式,在Console中输入navigator,点击回车,可以查看所有的属性和方法。
日期和时间
Var mydate = new Date();
注:mydate.getMonth()获取的是0~11,0代表1月,getDay()/getHours()/getMinutes()/getSeconds()一样从0开始
但是getDate()是从1~31
可以查看console下的Date()方法
Math对象简化方法
Math对象不需要创建,它的一些方法如下
ceil(n) |
返回n向上取整到最近的整数,4.23 ->5 |
floor(n) |
返回向下取整到最近的整数4.23->4 |
max(a,b,c,…) |
返回最大 |
min(a,b,c…) |
返回最小 |
round(n) |
返回n四舍五入到最近的整数 |
random() |
返回0~1之间的随机数 |
注:在程序里面直接使用Math方法,这些方法是数学与Math的,不是属于创建对象的。换句话说,下面语法是错误的:
VarmyNum = 24.77
myNum.floor();
正确写法:
Math.floor(myNum);
数字常数
很多常用的数学常数都是以Math属性的方式出现
E |
自然对数,2.718…. |
LN2 |
2的自然对数 |
LN10 |
10的自然对数 |
LOG2E |
以2为e的对数 |
LOG10E |
以10为底e的对数 |
PI |
圆周率 |
SORT1_2 |
2的平方根倒数 |
SORT2 |
2的平方根 |
使用方法:var area =Math.PI*radius*radius,圆的面积
关键字WITH
With可以用于所有对象,
With(对象){
Var myRand= random();
Var biggest = max(2,3,4);
Var height = round(76.54)
}
注:在这个范例中,我们只使用方法名称就调用了Math.random(),Math.max(),Math.round()等方法,因为调用这些方法的代码块与Math对象实现了关联。