欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

window

程序员文章站 2022-07-12 18:14:53
...

概念

它表示浏览器窗口。所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。可以认为 js 外层有一个包裹全局的对象,里面定义的全局属性、方法都是定义在该对象内部,都自动成为 window 对象的成员

  1. 全局变量是 window 对象的属性。

  2. 全局函数是 window 对象的方法。

    var s_test = 'test' 
    for(var p in window){
        if(p == 's_test') // 通过字符串进行比较,因为 p 表示的属性名
            alert(window[p]); // 输出结果为 test 
    }
    

    第一句定义了一个全局变量,它会自动成为 window 对象的一个属性,所以通过 for in 语句可以遍历到该属性。

    for in 语句遍历该对象中的所有属性,如果属性名为 s_test (也就是自己定义的变量名),则输出这个属性值。

  3. window 下的属性与方法可以使用 window. 进行调用,也可以直接写属性名或方法名。

常用方法

  1. open() :打开新窗口。第一个参数表示新窗口加载的网页地址。第三个参数指定了新窗口的相关参数。

    • 第二个参数表示窗口的别名,别名相同时,只会刷新窗口的内容,而不会再次打开新的;如果没有该参数,则会不断新建。

    • 第二个参数为 _blank 时,会新建窗口。默认值。

    • 第二个参数为 _parent 时,会在当前窗口加载新数据,而不会打开新的窗口。

  2. close() : 关闭当前窗口

  3. moveTo() : 移动当前窗口,将指定的 window 移动到相应的位置

  4. resizeTo() : 调整当前窗口的尺寸

var myWindow;
function openWin() {
    myWindow=window.open("", "myWindow", "width=200, height=100");
    myWindow.document.write("<p>This is 'myWindow'</p>");
}

function moveWin() {
    myWindow.moveTo(500, 100);
    myWindow.focus();
}
function resize() {
    myWindow.resizeTo(300, 600);
    myWindow.focus();
}
function close(){
    myWindow.close()
}
  1. encodeURI,decodeURI:对 URI 进行编码和解码。
alert(window.encodeURI('fdas中'))
  1. encodeURIComponent,decodeURIComponent:对 URI 进行彻底的编码与解码,比上面两个使用的频率要高。

  2. eval():解析字符串,如果字符串是 js 代码,会同时执行相应的 js 代码

    eval('var box = 100');
    alert(box); //这里会输出 100
    
    var s = 'function test(){alert("from eval")}'
    eval(s)
    test() //from eval
    

    从上可以看出, eval 首先解析了字符串,同时执行其中的 js 代码,因此第一个 eval 方法执行完毕后,系统创建了一个 box 属性,同时 alert 输出 box 属性的值;
    第二个 eval 方法解析一个函数,系统同时生成了一个名为 test 的函数

  3. onload():整个文档加载结束后执行的方法。需要为该属性指定一个方法实现。

    window.onload = function (argument) {
        console.log('finish')
        console.log(document.getElementById('a').innerHTML)
    }
    

定时任务

  1. setTimeout():延迟多少毫秒后执行第一个参数指向的方法,第一个参数是方法名,当然也可以是一个匿名函数。

    function m (){
        console.log('aaa')
    }
    
    window.setTimeout(m,2000);
    
    window.setTimeout(function(){
        console.log('33000')
    },3000)  // 本次执行一个匿名函数
    
  2. clearTimeout():取消指定的延迟执行。其参数为 setTimeout() 的返回值。

  3. setInterval() 与 clearInterval():设置与清除重复执行,注意:该方法在开发中不建议使用。这是因为 setInterval 需要使用 clearInterval 清除掉任务。

    var h ;
    function openSogou(){
        h = setInterval(function(){
            console.log('aaa')
        },2000) // 每隔 2s 执行一次指定的函数
    }
    function clear2(){
        clearInterval(h)
    }
    

系统对话框

  1. alert() :警告框,只有确定选项

  2. confirm():确认框,有确定和取消选项。点击确定,该方法返回 true,否则返回 false。

  3. prompt:输入提示框,可以让用户进行输入。第一个参数表示输出提示,第二个参数表示输入默认值。用户点击确定时,返回用户输入的值; 否则返回 null。

常用属性

属性名 含义
closed 当窗口关闭时为 true

定时器

由于不建议使用 setInterval() ,所以定义器使用 setTimeout() 实现。

var num = 0;
var max = 5;
function task(){
    num++
    // 这里写每一个定时的任务
    document.getElementById('a').innerHTML += num;
    if(num == max){
        // 定时结束,执行任务
    }else{
        setTimeout(task,1000)
    }
}
setTimeout(task,1000)