成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

js中的bom對(duì)象

dailybird / 1711人閱讀

摘要:在瀏覽器中,對(duì)象有雙重角色,它既是通過(guò)訪問(wèn)瀏覽器窗口的一個(gè)接口,又是規(guī)定的對(duì)象。在集合中,可以通過(guò)數(shù)值索引從開(kāi)始,從左至右,從上到下或者框架名稱來(lái)訪問(wèn)相應(yīng)的對(duì)象。

ECMAScript 是JavaScript 的核心,但如果要在Web 中使用JavaScript,那么BOM(瀏覽器對(duì)象模
型)則無(wú)疑才是真正的核心。BOM 提供了很多對(duì)象,用于訪問(wèn)瀏覽器的功能,這些功能與任
何網(wǎng)頁(yè)內(nèi)容無(wú)關(guān).

window對(duì)象

BOM 的核心對(duì)象是window,它表示瀏覽器的一個(gè)實(shí)例。在瀏覽器中,window 對(duì)象有雙重角色,
它既是通過(guò)JavaScript 訪問(wèn)瀏覽器窗口的一個(gè)接口,又是ECMAScript 規(guī)定的Global 對(duì)象。這意味著
在網(wǎng)頁(yè)中定義的任何一個(gè)對(duì)象變量函數(shù),都以window 作為其Global 對(duì)象

全局作用域

由于 window 對(duì)象同時(shí)扮演著ECMAScript 中Global 對(duì)象的角色,因此所有在全局作用域中聲明
的變量、函數(shù)都會(huì)變成window 對(duì)象的屬性和方法

var age = 29;
function sayAge(){
alert(this.age);
}
alert(window.age); //29
sayAge(); //29
window.sayAge(); //29

全局變量不能通過(guò)delete 操作符刪除,而直接在window 對(duì)象上的定義的屬性可以

var age = 29;
window.color = "red";
//在IE < 9 時(shí)拋出錯(cuò)誤,在其他所有瀏覽器中都返回false
delete window.age;
//在IE < 9 時(shí)拋出錯(cuò)誤,在其他所有瀏覽器中都返回true
delete window.color; //returns true
alert(window.age); //29
alert(window.color); //undefined

嘗試訪問(wèn)未聲明的變量會(huì)拋出錯(cuò)誤,但是通過(guò)查詢window 對(duì)象,可以知道某個(gè)可能未聲明的變量是否存在

//這里會(huì)拋出錯(cuò)誤,因?yàn)閛ldValue 未定義
var newValue = oldValue;
//這里不會(huì)拋出錯(cuò)誤,因?yàn)檫@是一次屬性查詢
//newValue 的值是undefined
var newValue = window.oldValue;
窗口關(guān)系及框架

如果頁(yè)面中包含框架,則每個(gè)框架都擁有自己的window 對(duì)象,并且保存在frames 集合中。在frames
集合中,可以通過(guò)數(shù)值索引(從0 開(kāi)始,從左至右,從上到下)或者框架名稱來(lái)訪問(wèn)相應(yīng)的window 對(duì)
象。每個(gè)window 對(duì)象都有一個(gè)name 屬性,其中包含框架的名稱


    
        Frameset Example
        
    

    
    
        
        
    

以上代碼創(chuàng)建了一個(gè)框架集,其中一個(gè)框架居上,兩個(gè)框架居下。對(duì)這個(gè)例子而言,可以通過(guò)
window.frames[0]或者window.frames["topFrame"]來(lái)引用上方的框架。不過(guò),恐怕你最好使用
top 而非window 來(lái)引用這些框架(例如,通過(guò)top.frames[0]),top 對(duì)象始終指向最高(最外)層的框架,也就是瀏覽器窗口,與top相對(duì)的是parent,parent指向的是父框架

窗口位置

使用下列代碼可以跨瀏覽器取得窗口左邊和上邊的位置。

var leftPos = (typeof window.screenLeft == "number") ?
window.screenLeft : window.screenX;
var topPos = (typeof window.screenTop == "number") ?
window.screenTop : window.screenY;
系統(tǒng)對(duì)話框

系統(tǒng)對(duì)話框有三個(gè),分別為:alert,confirm,prompt.
alert為系統(tǒng)提示框

alert("nice to meet you");

confirm為確認(rèn)框

var sure = confirm("are you have a good time ?");
if(sure){
alert("yes, you have a good time !");
}

prompt為系統(tǒng)輸入框

var getname = prompt("what"s you name ?","name");//參數(shù)1為提示語(yǔ), 參數(shù)2為默認(rèn)字符.
alert(getname);
間歇調(diào)用和超時(shí)調(diào)用

間歇調(diào)用使用setTimeout方法,超時(shí)調(diào)用使用setInterval方法
這兩個(gè)方法都有兩個(gè)參數(shù),第一個(gè)參數(shù)為執(zhí)行的代碼或函數(shù),第二個(gè)參數(shù)為執(zhí)行時(shí)間.
當(dāng)然這兩種調(diào)用也有對(duì)應(yīng)的方法來(lái)清除調(diào)用.

 setTimeout(function(){ alert("good morning!"); },1000); //一秒后彈出彈框.
 
 var count = 0;
 var interval =  setInterval(function(){      
    count++;
    if(count > 10){
         clearInterval(interval);  //清除間歇調(diào)用
        }
 },1000); 

setInterval有個(gè)不足之處是后一個(gè)間歇調(diào)用可能會(huì)在前一個(gè)間歇調(diào)用結(jié)束之前啟動(dòng),因此使用setTimeout來(lái)模擬setInterval是不錯(cuò)的選擇.

var count = 0; 
function doSoming(){
    count ++;
    if(count<=10){
 setTimeout(doSoming,1000);    
}
}
setTimeout(doSoming,1000);
獲取窗口大小

通過(guò)以下代碼可以跨瀏覽器獲取頁(yè)面視口大小

var pageWidth = window.innerWidth,
    pageHeight = window.innerHeight;
if(typeof pageWidth !="number"){
    if (document.compatMode == "CSS1Compat"){
        pageWidth = document.documentElement.clientWidth;
        pageHeight = document.documentElement.clientHeight;
        }
    else {
        pageWidth = document.body.clientWidth;
        pageHeight = document.body.clientHeight;
     }
}
location對(duì)象

location 是最有用的BOM對(duì)象之一,它提供了與當(dāng)前窗口中加載的文檔有關(guān)的信息,還提供了一些導(dǎo)航功能
以下是location對(duì)象的屬性列表.

hash 返回URL中的hash(#號(hào)后跟零或多個(gè)字符),如果URL中不包含散列,則返回空字符串,例"#contents"

host 返回服務(wù)器名稱和端口號(hào)(如果有).例"www.zhaosywz.com:80"

hostname 返回不帶端口號(hào)的服務(wù)器名稱.例"www.zhaosywz.com"

href 返回當(dāng)前頁(yè)面的完整url.例"www.zhaosywz.com/index.html"

pathname 返回url中的目錄或文件名,例"/category/shoes"

port 返回url的端口號(hào),如果沒(méi)有則返回空字符串.例"8080"

protocol 返回頁(yè)面使用的協(xié)議。通常是http:或https:

search 返回URL的查詢字符串。這個(gè)字符串以問(wèn)號(hào)開(kāi)頭,"?id=100"

盡管"search"屬性可以返回查詢字符串,但為了更加方便的訪問(wèn)其參數(shù),可以通過(guò)下面的代碼將其轉(zhuǎn)化為包含參數(shù)的對(duì)象.

function getQueryStringArgs(){
    //取得查詢字符串并去掉開(kāi)頭的問(wèn)號(hào)
    var qs = (location.search.length > 0 ? location.search.substring(1) : ""),
    //保存數(shù)據(jù)的對(duì)象
    args = {},
    //取得每一項(xiàng)
    items = qs.length ? qs.split("&") : [],
    item = null,
    name = null,
    value = null,
    //在for 循環(huán)中使用
    i = 0,
    len = items.length;
    //逐個(gè)將每一項(xiàng)添加到args 對(duì)象中
    for (i=0; i < len; i++){
    item = items[i].split("=");
    name = decodeURIComponent(item[0]);
    value = decodeURIComponent(item[1]);
    if (name.length) {
    args[name] = value;
    }
    }
    return args;
}

通過(guò)以下任何一種方式都會(huì)導(dǎo)致頁(yè)面的跳轉(zhuǎn)或重載

location.;
location.hash = "#section1";
location.search = "?q=javascript";
location.hostname = "www.yahoo.com";
location.pathname = "mydir";
location.port = 8080;

通過(guò)reload()可以重新加載當(dāng)前頁(yè)面

location.reload(); //重新加載(有可能從緩存中加載)
location.reload(true);//重新加載(直接從服務(wù)器加載)
navigator對(duì)象

最早由 Netscape Navigator 2.0 引入的navigator 對(duì)象,現(xiàn)在已經(jīng)成為識(shí)別客戶端瀏覽器的事實(shí)標(biāo)準(zhǔn),navigator有以下跨瀏覽器屬性和方法.

appCodeName 瀏覽器的名稱。通常都是Mozilla,即使在非Mozilla瀏覽器中也是如此

appName 完整的瀏覽器名稱

appVersion 瀏覽器版本,一般不與實(shí)際的瀏覽器版本對(duì)應(yīng).

cookieEnabled 表示cookie是否啟用

javaEnabled() 表示單簽瀏覽器是否啟用Java

onLine 表示瀏覽器是否連接到了因特網(wǎng)

mimeTypes 在瀏覽器中注冊(cè)的MIME類型數(shù)組

platform 瀏覽器的系統(tǒng)平臺(tái)

plugins 瀏覽器中安裝的插件信息的數(shù)組

userAgent 瀏覽器用戶代理字符串
userAgent是最常用的屬性.

插件檢測(cè)

//檢測(cè)插件(在IE 中無(wú)效)
function hasPlugin(name){
name = name.toLowerCase();
for (var i=0; i < navigator.plugins.length; i++){
if (navigator. plugins [i].name.toLowerCase().indexOf(name) > -1){
return true;
}
}
return false;
}
//檢測(cè)Flash
alert(hasPlugin("Flash"));
//檢測(cè)IE 中的插件
function hasIEPlugin(name){
try {
new ActiveXObject(name);
return true;
} catch (ex){
return false;
}
}
//檢測(cè)Flash
alert(hasIEPlugin("ShockwaveFlash.ShockwaveFlash"));
history對(duì)象

history 對(duì)象保存著用戶上網(wǎng)的歷史記錄,從窗口被打開(kāi)的那一刻算起。

//后退一頁(yè)
history.go(-1);

//前進(jìn)一頁(yè)
history.go(1);

//前進(jìn)兩頁(yè)
history.go(2);

//跳轉(zhuǎn)到最近的包含"wrox.com"字符的頁(yè)面
history.go("wrox.com");

//后退一頁(yè)
history.back();
//前進(jìn)一頁(yè)
history.forward();

if (history.length == 0){
//這應(yīng)該是用戶打開(kāi)窗口后的第一個(gè)頁(yè)面
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/86096.html

相關(guān)文章

  • 簡(jiǎn)簡(jiǎn)單單認(rèn)識(shí)js里的Bom對(duì)象

    摘要:里面的對(duì)象是什么是瀏覽器對(duì)象,全拼為都有什么對(duì)象是中的頂級(jí)對(duì)象,所有定義在全局作用域中的變量函數(shù)都會(huì)變成對(duì)象的屬性和方法,在調(diào)用的時(shí)候可以省略。 js里面的Bom對(duì)象 showImg(https://segmentfault.com/img/remote/1460000010691602); Bom是什么? Bom是瀏覽器對(duì)象,全拼為Browser Object Model Bom都有...

    CoffeX 評(píng)論0 收藏0
  • JS系列之BOM

    摘要:顧名思義,父對(duì)象始終指向當(dāng)前框架的直接上層框架。與框架有關(guān)的最后一個(gè)對(duì)象是,它始終指向?qū)嶋H上,和對(duì)象可以互換使用。同時(shí),這也意味著可以將不同層次的對(duì)象連綴起來(lái),例如。對(duì)象就是判斷用戶的瀏覽器以及操作系統(tǒng)。 BOM BOM Browser Object Model, 瀏覽器對(duì)象模型showImg(https://segmentfault.com/img/bVbjS3b?w=663&h=4...

    edagarli 評(píng)論0 收藏0
  • bom基礎(chǔ)

    摘要:里面的對(duì)象什么是是瀏覽器對(duì)象,全拼為瀏覽器對(duì)象模型是的縮寫(xiě),簡(jiǎn)稱瀏覽器對(duì)象模型提供了獨(dú)立于內(nèi)容而與瀏覽器窗口進(jìn)行交互的對(duì)象由于主要用于管理窗口與窗口之間的通訊,因此其核心對(duì)象是由一系列相關(guān)的對(duì)象構(gòu)成,并且每個(gè)對(duì)象都提供了很多方法與屬性缺乏標(biāo) js里面的Bom對(duì)象 什么是Bom Bom是瀏覽器對(duì)象,全拼為(Browser Object Model)瀏覽器對(duì)象模型 BOM是browser...

    shusen 評(píng)論0 收藏0
  • js中的BOM對(duì)象

    摘要:瀏覽器對(duì)象模型以對(duì)象為依托,表示瀏覽器窗口以及頁(yè)面可見(jiàn)區(qū)域。同時(shí),對(duì)象還是中的對(duì)象,因而所有全局變量和函數(shù)都是它的屬性,且所有原生的構(gòu)造函數(shù)及其他函數(shù)也都存在于它的命名空間下。本章討論了下列的組成部分。 瀏覽器對(duì)象模型(BOM)以 window 對(duì)象為依托,表示瀏覽器窗口以及頁(yè)面可見(jiàn)區(qū)域。同時(shí), window對(duì)象還是 ECMAScript 中的 Global 對(duì)象,因而所有全局變量和函...

    894974231 評(píng)論0 收藏0
  • js bom location對(duì)象

    摘要:一對(duì)象獲取獲取服務(wù)器名稱和端口號(hào)獲取服務(wù)器名稱和端口號(hào)獲取服務(wù)器名稱和端口號(hào)獲取不帶端口號(hào)的服務(wù)器名稱獲取不帶端口號(hào)的服務(wù)器名稱獲取整個(gè)獲取整個(gè)返回中的目錄和或文件名返回中的目錄和或文件名返回的端口號(hào)返回的端口號(hào)返回的協(xié)議返回的協(xié)議返回的查 一、location對(duì)象 http://localhost:8881/javascript/BOM/window.html?name=bob&ag...

    Carson 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<