window对象

计时器

setTimeout()   //用来实现一个函数在指定的毫秒之后运行

claerTimeout()   //用于取消这个函数的执行

setInterval()     //和setTimeout()一样,只不过这个函数会在指定毫秒数的间隔里重复调用

clearInterval()   //用于取消后续函数的调用

setInterval(updateClock,6000);//每60秒调用一次updateClock()
function invoke(f,start,interval,end){
    if(!start)start = 0;  //默认设置为0毫秒
    if(arguments.length<=2){    //单次调用模式
        setTimeout(f,start);     //若干毫秒后的单次调用模式
    }else{                       //多次调用模式
        setTimeout(repeat,start);   //在若干毫秒后调用模式
        function repeat(){         //在上一行所示的setTimeout()中调用
            var h = setInterval(f,interval);    //循环调用f()
            if(end){     //在end毫秒后停止调用,前提是end已经定义了
                setTimeout(function(){
                    clearInterval(h)
                },end)
            }
        }

    }
}

解析URL

location的其他属性——protocol , host , hostname , port , pathname , search , 分别表示URL的各个部分。它们称为‘URL分解’属性,同时被Link对象(通过HTML文档中的<a>和<area>元素创建)支持

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('=');   //查找‘name = value’
        if(pos === -1) continue;  //如果没有的话,就跳过
        var name = pairs[i].substring(0,pos);  //提取name
        var value = pairs[i].substring(pos+1);   //提取value
        value = decodeURIComponent(value);  //对value进行解码
        args[name] = value;  //存储为属性
    }
    return args;  //返回解析后的参数
}

replace()方法,载入新文档之前会从浏览历史中把当前文档删除

如果浏览器不支持XMLHttpRequest对象,则将其重定向到一个不需要ajax的静态页面,

if(!XMLHttpRequest)location.replace('staticpage.html')

除了assgin()和replace()方法,location对象还定义了reload()方法,后者可以让浏览器重新载入当前文档

location = "#top" ;  //跳转到文档的顶部,如果文档中没有元素ID是“top”,它会让浏览器跳到文档开始处

浏览历史

History对象的length属性表示浏览历史列表中的元素数量

History对象的back()forward()方法与浏览器的‘后退’和‘前进’按钮一样:它们使浏览器在浏览历史中前后跳转一格

第三个方法——go()接受一个整数参数,可以在历史列表中向前(正参数)或向后(负参数)跳过任意多个页

history.go(-2);    //后退两个历史记录,相当于单击“后退”按钮两次

html5历史管理项目,jquery有history插件,RSH是其中一个比较流行的示列,

浏览器和屏幕信息

Navigator对象

appName:属性可返回浏览器的名称

appName 属性是一个只读到字符串,声明了浏览器的名称。在基于 Netscape 的浏览器中,这个属性的值是 "Netscape"。在 IE 中,这个属性的值是 "Microsoft Internet Explorer"。其他浏览器可以正确地表示自己或者伪装成其他的浏览器以达到兼容性。

语法:

navigator.appMinorVersion

实例:

var browser=navigator.appName   //返回浏览器名称
var b_version=navigator.appVersion     //返回浏览器的平台和版本信息
var version=parseFloat(b_version)      //获取主版本号
document.write("浏览器名称:"+ browser)
document.write("<br />")
document.write("浏览器版本:"+ version)
输出:
浏览器名称:Netscape
浏览器版本:5

appVersion:属性可返回浏览器的平台和版本信息。该属性是一个只读的字符串

该字符串的第一部分是版本号。把该字符串传递给 parseInt() 只能获取主版本号。该属性的其余部分提供了有关浏览器版本的其他细节,包括运行它的操作系统的信息

实例同上

userAgent:属性是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值

一般来讲,它是在 navigator.appCodeName 的值之后加上斜线和 navigator.appVersion 的值构成的。

例如:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)。

:用户代理头:user-agent header

document.write(navigator.userAgent + "</p>")

platform: 属性是一个只读的字符串,声明了运行浏览器的操作系统和(或)硬件平台

虽然该属性没有标准的值集合,但它有些常用值,比如 "Win32"、"MacPPC" 以及 "Linuxi586",等等

onLine:属性表示浏览器当前是否连接到网络(也就是脱机状态),应用程序可能希望在离线状态下把状态保存在本地

geolocation:对象定义用于确定用户地理位置信息的接口

javaEnabled:方法可返回一个布尔值,该值指示浏览器是否支持并启用了 Java。如果是,则返回 true,否则返回 false

提示:可以使用 navigator.javaEnabled() 来检测当前浏览器是否支持 Java,从而知道浏览器是否能显示 Java 小程序

<script type="text/javascript">
alert(navigator.javaEnabled())
</script>
输出:true

cookieEnable:属性可返回一个布尔值,如果浏览器启用了 cookie,该属性值为 true。如果禁用了 cookie,则值为 false

document.write("是否启用 Cookie: " + navigator.cookieEnabled);
输出:是否启用 Cookie: true

Screen对象

属性width和height指定的是以像素为单位的窗口大小。

属性availWidthavailHeight指定的是实际可用的大小,它们排除了像桌面任务栏这样的特性所占用的空间。属性colorDepth指定的是显示的BPP(bits-per-pixel)值,典型的值有16、24和32

window.screen属性和它引用的Screen对象都是非标准但广泛实现的

availWidth:availWidth 属性声明了显示浏览器的屏幕的可用宽度,以像素计。在 Windows 这样的操作系统中,这个可用高度不包括分配给半永久特性(如屏幕底部的任务栏)的垂直空间

语法:screen.availWidth

document.write(screen.availWidth)
输出:1920

对话框

alert()向用户显示一条消息并等待用户关闭对话框

confirm()也显示一条消息,要求用户单击"确定"或"取消"按钮,并返回一个布尔值

prompt()同样也显示一条消息,等待用户输入字符串,并返回那个字符串

关闭对话框:window.close()

fieldest css  form表单外壳

打开和关闭窗口

window.open()有4个可选参数

open()的第一个参数是要在新窗口中显示的文档的URL

open()的第二个参数是新打开的窗口的名字

open()的第三个可选参数是一个以逗号分隔的列表

open()的第四个参数只在第二个参数命名的是一个存在的窗口时才有用

第三个参数是非标准的,HTML5规范也主张浏览器应该忽略它

var w = window.open('hello.html','hello','width=400,height=300,status=yes,resizable=yes')

target 属性规定在何处打开 action URL

语法:

<form target="_blank|_self|_parent|_top|framename">

属性值:

窗体之间的关系

<iframe>元素有contentWindow属性,引用该窗体的Window对象,所以此窗体的Window对象就是:

var ff = document.getElementById('f').contentWindow;

要引用窗口的第一个子窗体,可以用frames[0],引用第二个子窗体的第三个窗体,可以用frames[1].frames[2],注意frmes[]数组里的元素是Window对象,而不是<iframe>元素

还可以用名字进行索引:frames["f1"]或frames.f1

显式的引用构造函数,父级窗口的属性来引用构造函数: var s = new parent.Set();

定义自己的变量来引用构造函数: var Set = top.Set() ;   var s = new Set()

 

posted @ 2017-04-18 18:03  JoyJin  阅读(147)  评论(0编辑  收藏  举报