• 技术文章 >web前端 >前端问答

    javascript中window的意思是什么

    青灯夜游青灯夜游2022-02-15 18:06:17原创187

    在javascript中,window的意思为“窗口”,是一个内置的宿主对象,表示浏览器窗口,所有浏览器都支持该对象。所有JavaScript全局对象、函数以及变量均会自动成为window对象的成员。

    本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

    在javascript中,window的意思为“窗口”,是一个内置的宿主对象。

    window对象是BOM中所有对象的核心,除了是BOM中所有对象的父对象外,还包含一些窗口控制函数。

    宿主对象就是执行JS脚本的环境提供的对象,是浏览器提供的对象。所有的BOM和DOM都是宿主对象。

    Window 对象

    所有浏览器都支持 window 对象。它表示浏览器窗口。

    所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。

    甚至 HTML DOM 的 document 也是 window 对象的属性之一:

    window.document.getElementById("header");

    与此相同:

    document.getElementById("header");

    1、全局的window对象

      JavaScript中的任何一个全局函数或变量都是window的属性。

    <script type="text/javascript">
        var name="撼地神牛";
        document.write(window.name);
    </script>

    2、window与self对象

      self对象与window对象完全相同,self通常用于确认就是在当前的窗体内。

    <script type="text/javascript">
        document.write(window == self);      //必须相等,永远都相等
      document.write(window.Top == window.self);  //判断当前框架是否是主框架
    </script>

      window、self、window.self三者是等价的。

    3、window的子对象

      window的主对象主要有如下几个:

    4、window函数索引(仅对IE有效)

      窗体控制函数:

    <body>
        <input type="button" id="btn1" value="先设置窗体固定大小!" onclick="window.resizeTo(500,500);" />
        <input type="button" id="btn2" value="再缩小10像素!" onclick="window.resizeBy(-10,-10);" />
        <input type="button" id="btn2" value="上!" onclick="window.moveBy(0,-5);" />
        <input type="button" id="btn2" value="下!" onclick="window.moveBy(0, 5);" />
        <input type="button" id="btn2" value="左!" onclick="window.moveBy(-5, 0);" />
        <input type="button" id="btn2" value="右!" onclick="window.moveBy(5, 0);" />
        <input type="button" id="btn2" value="距离左上角左边100像素,顶部200像素" onclick="window.moveTo(100, 200);" />
    </body>

      窗体滚动轴控制函数:

      注意区别,一个是相对当前窗口,一个是相当现在滚动条的位置。

    <div style="height:150%; width:150%; background-color:#ddd">
        <input type="button" id="btn1" value="移动滚动条!" onclick="window.scrollTo(100,100);" />  //相当于设置绝对位置
        <input type="button" id="btn1" value="移动滚动条!" onclick="window.scrollBy(100,100);" />  //相当于累加
    </div>

      窗体焦点控制函数:

    <div>
        <input type="button" value="获得焦点" onclick="document.getElementById('testInput').focus()" />
        <input type="button" value="失去焦点" onclick="document.getElementById('testInput').blur()" />
        <input type="text" value="text" id="testInput" onblur="alert('我已失去焦点')" />
    </div>

      新建窗体函数:

      window.open(url, name, features, replace);

      open函数参数说明:

      open方法示例:

      <a href="2.html" target="2">在新窗口打开连接</a>
      <a href="#" onclick="window.open('http://www.google.com','2');">在已建立连接的页面打开新地址</a>

      首先使用普通HTML链接打开一个页面(target名为dreamdu),之后使用open函数打开另一个页面,浏览器首先要查找是否有名称为dreamdu的窗体,如果有,就在这个窗体中加载open的地址。

      经过设置的open

    window.open ('page.html', 'newwindow', 'height=100, width=400, top=0,left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no')

      弹窗方法:

    方法一:<body onload="openwin()"> 浏览器读页面时弹出窗口;  
    方法二:<body onunload="openwin()"> 浏览器离开页面时弹出窗口;

      open函数第三个参数features说明:

    参数名称类型说明
    heightNumber设置窗体的高度,不能小于100
    leftNumber说明创建窗体的左坐标,不能为负值
    locationBoolean窗体是否显示地址栏,默认值为no
    resizableBoolean窗体是否允许通过拖动边线调整大小,默认值为no
    scrollableBoolean窗体中内部超出窗口可视范围时是否允许拖动,默认值为no
    toolbarBoolean窗体是否显示工具栏,默认值为no
    topNumber说明创建窗体的上坐标,不能为负值
    statusBoolean窗体是否显示状态栏,默认值为no
    widthNumber创建窗体的宽度,不能小于100

      特性字符串中的每个特性使用逗号分隔,每个特性之间不允许有空格。

      window.open函数新建立窗体后会返回新建窗体的window对象,通过此对象可以控制窗体(移动,改变大小,关闭)。

      close函数:

    <input type="button" value="关闭已经打开的窗体!" onclick="window.close();" />

      self.close();配合上setTimeout()可以实现,打开的窗口定时关闭的效果。

      对话框函数:

      alert();

      不说。

      confirm(str);

      confirm()消息对话框是排它的,也就是在用户点击对话框的按钮前,不能进行任何其它操作。

    if(confirm("确定跳大?"))
    {
        alert("果断跳大");
    }else{
        alert("猥琐打钱");
    }

      显示如下:

        

     prompt(str1, str2);

      函数有两个参数

    var sResult=prompt("请在下面输入你的姓名", "撼地神牛");if(sResult!=null)
    {
        alert(sResult + "已经超越神的杀戮");
    }else{
        alert("无名氏已经超越神的杀戮");
    }

      显示如下:

      

      时间等待与间隔函数:

      1、setTimeout()、clearTimeout()  在指定的时间后调用函数

      语法:

        setTimeout(function () {
            document.write("隔3秒后触发");   
        }, 3000)    //在3秒后输出
        setTimeout(fun1, 5000);     //在5秒后输出
        function fun1() {
            document.write("函数名的方式5秒后触发");
        }

      2、setInterval()、clearInterval(value)  在间隔指定的事件后重复调用函数

      语法:

    var i = 0;var h = setInterval(function () {
        document.write("3秒输出一次<br/>");
        i++;    if (i >= 3) {
           clearInterval(h);
            document.write("停止输出");
        }
    }, 3000);

      注意,javascript是单线程的,因此,这个定时函数实际上是通过插入执行队列的方式来实现。

      如下面的代码:

    function fn() { 
      setTimeout(function(){alert('can you see me?');},1000); 
      while(true) {} 
    }

      alert();永远都不会执行,因为线程一直被死循环占用了。

    window.location子对象

      解析URL对象location

      location对象的属性有:href,protocal,host,hostname,port,pathname,search,hash

            document.write(location.href + "<br/>");        // http://localhost:4889/javascriptTest.html
            document.write(location.protocol + "<br/>");    // http:
            document.write(location.host + "<br/>");        // localhost:4889
            document.write(location.hostname + "<br/>");    // localhost
            document.write(location.port + "<br/>");        // 4889
            document.write(location.pathname + "<br/>");    // /javascriptTest.html
            document.write(location.search + "换行<br/>");  //http://localhost:4889/javascriptTest.html?id=1&name=张三 如果路径是这样,则输出  ?id=1&name=%E5%BC%A0%E4%B8%89
            document.write(location.hash);                  //http: //localhost:4889/javascriptTest.html#kk=你好?id=1&name=张三 如果路径是这样,则输出  #kk=你好?id=1&name=张三

      载入新文档

        location.reload()  重新加载页面

        location.replace()  本窗口载入新文档

        location.assign()  本窗口载入新文档

        location = "http://www.baidu.com"  //跳转到指定网址

        location = "search.html"        //相对路径跳转

        location = "#top"      //跳转到页面顶部

      浏览历史

        History()对象的back()与forward()  与浏览器的“后退”,"前进"功能一样。

        history.go(-2);  后退两个历史记录

      浏览器和屏幕信息

        navigator.appName  Web浏览器全称

        navigator.appVersion  Web浏览器厂商和版本的详细字符串

        navigator.userAgent  客户端绝大部分信息

        navagator.platform   浏览器运行所在的操作系统

            document.write(navigator.userAgent + "<br/>"); // Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11
            document.write(navigator.appName + "<br/>");   //Netscape
            document.write(navigator.appVersion + "<br/>"); //5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11
            document.write(navigator.platform);             //Win32

    窗口的关系

        parent == self  只有顶级窗口才返回true

         parent和top属性允许脚本引用它的窗体的祖先,通常窗体是通过<iframe>元素创建的,可以用来获取顶级窗口。

    5、event事件对象

      最有用的两个操作:阻止事件冒泡。有时return false;不管用,这个或许就管用了。

    //IE:
    window.event.cancelBubble = true;//停止冒泡
    window.event.returnValue = false;//阻止事件的默认行为
    
    //Firefox:
    event.preventDefault();// 取消事件的默认行为  
    event.stopPropagation(); // 阻止事件的传播

    【相关推荐:javascript学习教程

    以上就是javascript中window的意思是什么的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:javascript window
    上一篇:javascript恒等运算符是什么 下一篇:javascript中的函数用什么来声明
    PHP编程就业班

    相关文章推荐

    • javascript中window.$是什么意思• javascript怎么用鼠标隐藏元素• javascript中1!+2!+……+10!阶乘的和怎么表示• javascript中math.random()方法会随机到1吗

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网