首頁 >web前端 >前端問答 >javascript中window的意思是什麼

javascript中window的意思是什麼

青灯夜游
青灯夜游原創
2022-02-15 18:06:176048瀏覽

在javascript中,window的意思為“窗口”,是一個內建的宿主對象,表示瀏覽器窗口,所有瀏覽器都支援該對象。所有JavaScript全域物件、函數、變數都會自動成為window物件的成員。

javascript中window的意思是什麼

本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

在javascript中,window的意思是“視窗”,是一個內建的宿主物件。

window物件是BOM中所有物件的核心,除了是BOM中所有物件的父物件外,還包含一些視窗控制函數。

宿主物件就是執行JS腳本的環境所提供的對象,是瀏覽器提供的對象。所有的BOM和DOM都是宿主物件。

Window 物件

所有瀏覽器都支援 window 物件。它表示瀏覽器視窗。

所有 JavaScript 全域物件、函數、變數均自動成為 window 物件的成員。

  • 全域變數是 window 物件的屬性。

  • 全域函數是 window 物件的方法。

甚至HTML DOM 的document 也是window 物件的屬性之一:

window.document.getElementById("header");

與此相同:

document.getElementById("header");

1、全域的window物件

  JavaScript中的任何一個全域函數或變數都是window的屬性。

8019067d09615e43c7904885b5246f0a
    var name="撼地神牛";
    document.write(window.name);
2cacc6d41bbb37262a98f745aa00fbf0

2、window與self物件

  self物件與window物件完全相同,self通常用來確認就是在目前的窗體內。

8019067d09615e43c7904885b5246f0a
    document.write(window == self);      //必须相等,永远都相等
  document.write(window.Top == window.self);  //判断当前框架是否是主框架
2cacc6d41bbb37262a98f745aa00fbf0

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

3、window的子物件

  window的主物件主要有以下幾個:

  • JavaScript document 物件

  • JavaScript frames 物件

  • JavaScript history 物件

  • JavaScript location 物件

  • ## JavaScript navigator 物件

  • JavaScript screen 物件

4、window函數索引(僅對IE有效)

    #  窗體控制函數:
  • JavaScript moveBy() 函數:從目前位置水平移動窗體x個像素,垂直移動窗體y個像素,x為負數,將向左移動窗體, y為負數,將向上移動視窗。
  • JavaScript moveTo() 函數:移動視窗左上角到相對於螢幕左上角的(x,y)點,當使用負數做為參數時會把視窗移出螢幕的可視區域。

JavaScript resizeBy() 函數:相對窗體目前的大小,寬度調整w個像素,高度調整h個像素。若參數為負值,將縮小窗體,反之擴大窗體。

  • JavaScript resizeTo() 函數:把窗體寬度調整為w個像素,高度調整為h個像素。

  • 6c04bd5ca3fcae76e30b72ad730ca86d
        02edad1963adfa90e6b10bbd1f9ab79e
        5eac04ea1d548c5f0f87be4062c2c1b3
        906cd9b2775cac4cefd84b7f6ad07ce0
        9da8ebe7e9ca720a9ab0536518e2c435
        8006252de7d5c35b6d2bd9a854a60b7b
        c2abf7906f931633019d565144f979a3
        cb248f94d1d1b27db7360dfcb5344a36
    36cc49f0c466276486e50c850b7e4956

      窗體滾動軸控制函數:

JavaScript scrollTo() 函數:在表單中如果有捲軸,將橫向捲動條移動到相對於窗體寬度為x個像素的位置,將縱向滾動條移動到相對於窗體高度為y個像素的位置。

  • JavaScript scrollBy() 函數:如果有捲軸,將橫向滾動條移到相對於目前橫向捲軸的x個像素的位置(就是向左移動x像素),將縱向捲軸移動到相對於目前縱向捲軸高度為y個像素的位置(就是向下移動y像素)。
  •   注意區別,一個是相對當前窗口,一個是相當現在滾動條的位置。
<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>

  窗體焦點控制函數:

    #JavaScript focus() 函數:讓窗體或空間獲得焦點
  • # JavaScript blur() 函數:讓窗體或控制項失去焦點
  • <div>
        <input type="button" value="获得焦点" onclick="document.getElementById(&#39;testInput&#39;).focus()" />
        <input type="button" value="失去焦点" onclick="document.getElementById(&#39;testInput&#39;).blur()" />
        <input type="text" value="text" id="testInput" onblur="alert(&#39;我已失去焦点&#39;)" />
    </div>
  •   新窗體函數:

JavaScript open() 函數:開啟(彈出)一個新的窗體

JavaScript close() 函數:關閉窗體

JavaScript opener 屬性:透過opener可以實現跨窗體之間的通訊,但是要保證是在同一網域下,而且一個窗體要包含另一個窗體的opener。

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

###  open函數參數說明:##########url -- 要載入窗體的URL;######name -- 新窗體的名稱(也可以是HTML target屬性的取值,目標);######features -- 代表窗體特性的字串,字串中每個特性使用逗號分隔;######replace -- 一個布林值,說明新載入的頁面是否取代目前載入的頁面,此參數通常不用指定。 #########  open方法範例:###
  <a href="2.html" target="2">在新窗口打开连接</a>
  <a href="#" onclick="window.open(&#39;http://www.google.com&#39;,&#39;2&#39;);">在已建立连接的页面打开新地址</a>
###  先使用普通HTML連結開啟一個頁面(target名稱為dreamdu),之後使用open函數開啟另一個頁面,瀏覽器首先要尋找是否有名為dreamdu的窗體,如果有,就在這個窗體中載入open的位址。 ######  經過設定的open###
window.open (&#39;page.html&#39;, &#39;newwindow&#39;, &#39;height=100, width=400, top=0,left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no&#39;)
###   彈窗方法:###
方法一:<body onload="openwin()"> 浏览器读页面时弹出窗口;  
方法二:<body onunload="openwin()"> 浏览器离开页面时弹出窗口;
###  open函數第三個參數features說明:##### resizableBoolean表單是否允許拖曳邊線調整大小,預設值為noscrollableBoolean窗體中內部超出視窗視覺範圍時是否允許拖曳,預設值為no#toolbartopstatus##widthNumber建立窗體的寬度,不能小於100#

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

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

  close函数:

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

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

  对话框函数:

  • JavaScript alert() 函数:弹出消息对话框(对话框中有一个OK按钮)

  • JavaScript confirm() 函数:弹出消息对话框(对话框中包含一个OK按钮与Cancel按钮)

  • JavaScript prompt() 函数:弹出消息对话框(对话框中包含一个OK按钮、Cancel按钮与一个文本输入框)

  alert();

  不说。

  confirm(str);

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

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

  显示如下:

    

  prompt(str1, str2);

  函数有两个参数

  • str1 -- 要显示在消息对话框中的文本,不可修改
  • str2 -- 文本框中的内容,可以修改
var sResult=prompt("请在下面输入你的姓名", "撼地神牛");if(sResult!=null)
{
    alert(sResult + "已经超越神的杀戮");
}else{
    alert("无名氏已经超越神的杀戮");
}

  显示如下:

  

  时间等待与间隔函数:

  • JavaScript setTimeout() 函数
  • JavaScript clearTimeout() 函数
  • JavaScript setInterval() 函数
  • JavaScript clearInterval() 函数

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

  语法:

  • setTimeout(fun,time);  fun:函数体或函数名,time指定时间,单位为毫秒。
  • clearTimeout(id);  取消指定的setTimeout函数将要执行的代码
    setTimeout(function () {
        document.write("隔3秒后触发");   
    }, 3000)    //在3秒后输出
    setTimeout(fun1, 5000);     //在5秒后输出
    function fun1() {
        document.write("函数名的方式5秒后触发");
    }

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

  语法:

  • setInterval(fun1,time)  fun:函数体或函数名,time指定的时间,单位为毫秒。会返回一个值,这个值是统计该函数的个数用的,第一个是1,第二个就是2,指明是第几个setInterval函数。
  • clearInterval(value)    value:setInterval()函数返回的值,根据这个值可以停止setInterval()的重复。 
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(&#39;can you see me?&#39;);},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属性允许脚本引用它的窗体的祖先,通常窗体是通过d5ba1642137c3f32f4f4493ae923989c元素创建的,可以用来获取顶级窗口。 

5、event事件对象

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

//IE:
window.event.cancelBubble = true;//停止冒泡
window.event.returnValue = false;//阻止事件的默认行为

//Firefox:
event.preventDefault();// 取消事件的默认行为  
event.stopPropagation(); // 阻止事件的传播

【相关推荐:javascript学习教程

參數名稱 類型 說明
#height Number 設定窗體的高度,不能小於100
left Number 說明建立窗體的左座標,不能為負值
location Boolean 窗體是否顯示網址列,預設值為no
##Boolean 窗體是否顯示工具列,預設值為no
Number 說明建立窗體的上座標,不能為負值
Boolean 窗體是否顯示狀態欄,預設值為no

以上是javascript中window的意思是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn