javascript学习之BOM come from 北风网+瓢城俱乐部,特此感谢!
window.blur()使窗体或对象失去焦点;
与之相反的代码是window.focus();但是各个浏览器之间有冲突
并不是所有的浏览器都支持这两个代码
但有的浏览器会屏掉这个弹窗
为了防止浏览器将弹窗屏屏蔽,可以将弹窗代码加到事件
中去,这样浏览器会识别出这个弹窗是由用户触发的,
因此不会屏蔽
下面这段单独的代码可以会遇到某些浏览器的屏蔽
window.open("url",name,features.replace);
但我们可以将其加入到某个事件 中,
如document.onclick=function(){
window.open();
}
window.open是一个比较重要的函数
如window.open("www.baidu.com" ,"_blank")
但其中 也有一个重要的技巧,下面这段代码
window.open("url1","newwindow");
window.open("url2","newwindow");
window.open("url3","newwindow")
这段的代码的效果将是只打开一个窗口,而三个url虽然是不同的
的,但是它们打开的新窗口的名字是相同的,所以只会打开一个窗口
而在这一个窗口中依次显示三个网址,也就是url1会先显示,然后url2会覆盖url1,然后url3会覆盖url2,这三个地址是依次在同一个窗口中显示 的,
解决这个问题最笨的办法就是给要打开的窗口取不同的名字
window.open("url1","newwindow1");
window.open("url2","newwindow2");
window.open("url3","newwindow3")
另一个重要的技巧是这样写
window.open("url1","_blank");
window.open("url2","_blank");
window.open("url3","_blank")
在这里这个_blank有特殊的意义,表示每次都要在新的窗口中打开url
另一个在此有意义的词语就是_self
window.open("url1","_self")
window.open("url2","_self")
则这段代码的效果将会在当前窗口中依次打开两个url
而不会打开新的窗口
这个函数的实现与浏览器对安全性的设置有关
screen是一个对象,表示屏幕,如screen.width表示当前屏幕的
而screen.heigh表示当前屏幕的高度
关闭窗口
window.close()这段代码只会关闭由javascrip打开的窗口,即是由
window.open()所打开的窗口才能由window.close()关闭
window.open()是有返回值的,返回的即是object window对象
即是一个新窗体的引用
如可以这样写一段代码
var w=window.open(“url”,"");
w.close();
这样就可以关闭由window.open()打开的窗体
window.moveto(0,0);
但这段代码会出错,var w=window.open;
var d = w.document;则会出错,因为window.open一般打开的是
其它网站的窗体,而这段代码要在本网址内访问其它网址的内容
这就会导致安全问题,javascript在这里不支持,所以会出错,
但是如果window.open("url","_blank")中的url是指向本页面的
url则可以获得打开的document
子窗口和父窗口通信的问题的问题
这里先介绍对话框javascript中有三种对话框
alert(str) ;弹出消息对话框,对话框 中有一个确定按钮
confirm(str);弹出一个消息对话框
对话框中包含一个确定按钮与取消按钮
prompt(str,defaultValue);弹出消息对话框,对话框中包含一个确定按钮
一个取消按钮和一个文本输入框,由于浏览器之间的兼容问题,若没有第二个参数,即文本框中默认值时也最好提供一个空字符串
即prompt(str,"");
window.defaultStatus属性 改变浏览器状态栏的显示
window.status属性 临时改变浏览器状态栏的显示
时间等待与间隔函数
setTimeout()暂停指定的这毫秒数后执行指定的代码
clearTimeout()取消指定的setTimeout函数将要执行的代码
setInterval()间隔指定的毫秒数不停地执行指定的代码
clearInterval()取消指定的setInterval函数要执行的代码
setTimeout与setInterval方法有两个参数,第一个对数可以为字条串形式的代码,也可以是函数引用,第二个参数为间隔这毫秒数,它们的返回 是一个可用于对应clear方法的数字ID
//status
setTimeout这个函数是很重要 的,有两个参数,第一个参数是代码,第二个是要间隔的毫秒数
如setTimeout("alert("wqe")",10000)间隔十秒执行弹出框,但是这个代码是有问题,因为""是不能嵌套的,是需要进行转义
这种用法是不提倡的,因为这样写的代码是死的,还不能进行传值
所以可以用下面这段代码的形式
setTimeout(function(){
},1000)用一个函数来取代代码的这个函数会返回一个值,如
var t = setTimeout()
而clearTimeout(t)则可以来取消这段间隔执行的代码,
类似的应用也适用于setInternal()和clearInternal()
下面要讲的一个对象是History这个对象的
应用意义并不是太大
其中 有三个函数
back()加载history列表中的前一个url,这个函数还是有时候会用到的,
forword()加载history列表中的下一个url
go(num)加载history列表中的某个具体页面这个函数没有什么特殊的意
这三个函数中的应用很少,因为谁也不知道用户的收藏夹里具体存在的页面是什么,所以没有什么实际的应用,可以忽略
下面要讲的一个对象是Location对象
在火狐中安装了firedebug后会有一个console对象
location.href=www.baidu.com这句代码的效果相当于在当前的窗口中输入www.baidu.com这段代码也等同于location.assign(www.baidu.com)
reload()相当于刷新的功能
如location.reload(true)表示强制刷新
但location.href和location.assign()会有副 作用,即在将当前页面转到目标地址后,会在历史记录中留下痕迹,如果这条语句使用的少也没有多少关系,但如果大量使用的话,会产生很多垃圾文件,及对浏览