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

資訊專欄INFORMATION COLUMN

JavaScript DOM擴(kuò)展——“專有擴(kuò)展”的注意要點(diǎn)

wudengzan / 2811人閱讀

摘要:另外,以及這兩個(gè)方法,在測(cè)試了一下,并無(wú)反應(yīng)。不知是否兼容問(wèn)題。下面是獲得焦點(diǎn)的時(shí)候,自動(dòng)以每毫秒的速度往下滾屏

文檔模式

頁(yè)面的文檔模式是由IE8引入的,文檔模式?jīng)Q定了可以使用的CSS級(jí)別、JS中的API以及如何對(duì)待文檔類型(doctype);在IE9,提供了4中文檔模式:

IE5:混雜模式;

IE7:IE7標(biāo)準(zhǔn)模式渲染頁(yè)面;

IE8:IE8標(biāo)準(zhǔn)模式渲染頁(yè)面,可以使用Selectors API、更多CSS2級(jí)選擇符和某些CSS3功能、HTML5的一些功能;

IE9:IE9標(biāo)準(zhǔn)模式渲染頁(yè)面,這個(gè)文檔模式是最高級(jí)的模式;

要強(qiáng)制瀏覽器以某種模式渲染頁(yè)面,可以使用HTTP頭部信息X-UA-Compatible,或通過(guò)等價(jià)的meta標(biāo)簽來(lái)設(shè)置:


其中IEVersion有以下取值:

Edge:始終以最新的文檔模式來(lái)渲染頁(yè)面;

EmulateIE9:如果有文檔類型聲明,以IE9標(biāo)準(zhǔn)模式渲染頁(yè)面,否則將文檔模式設(shè)置為IE5;

EmulateIE8:如果有文檔類型聲明,以IE8標(biāo)準(zhǔn)模式渲染頁(yè)面,否則將文檔模式設(shè)置為IE5;

EmulateIE7:如果有文檔類型聲明,以IE7標(biāo)準(zhǔn)模式渲染頁(yè)面,否則將文檔模式設(shè)置為IE5;

9:強(qiáng)制以IE9標(biāo)準(zhǔn)模式渲染頁(yè)面,忽略文檔類型聲明;

8:強(qiáng)制以IE8標(biāo)準(zhǔn)模式渲染頁(yè)面,忽略文檔類型聲明;

7:強(qiáng)制以IE7標(biāo)準(zhǔn)模式渲染頁(yè)面,忽略文檔類型聲明;

5:強(qiáng)制以IE5標(biāo)準(zhǔn)模式渲染頁(yè)面,忽略文檔類型聲明;

如:


或直接使用IE7模式:


通過(guò)document.documentMode屬性可以知道給定頁(yè)面使用的是什么文檔模式。

children屬性

該屬性只包含元素中同樣還是元素的子節(jié)點(diǎn),除此之外,該屬性與childNodes沒(méi)區(qū)別;

console.log(document.body.children.length);

IE<9的瀏覽器有bug;

contains()方法和compareDocumentPosition()方法

前者調(diào)用的應(yīng)該是祖先節(jié)點(diǎn),接收一個(gè)參數(shù)即要檢測(cè)的后代節(jié)點(diǎn);后者則是DOM Level 3中的,會(huì)返回如下掩碼:

Bits Number Meaning

000000 0 元素一致

000001 1 節(jié)點(diǎn)在不同的文檔(或者一個(gè)在文檔之外)

000010 2 節(jié)點(diǎn) B 在節(jié)點(diǎn) A 之前

000100 4 節(jié)點(diǎn) A 在節(jié)點(diǎn) B 之前

001000 8 節(jié)點(diǎn) B 包含節(jié)點(diǎn) A

010000 16 節(jié)點(diǎn) A 包含節(jié)點(diǎn) B

100000 32 瀏覽器的私有使用

對(duì)于contains()方法,如下:

console.log(document.documentElement.contains(document.body)); //true

對(duì)于compareDocumentPosition()方法則:

var result = document.getElementById("divId").compareDocumentPosition(document.getElementById("pId"));
//4,給定的節(jié)點(diǎn)pId在參考的節(jié)點(diǎn)divId的后面,居后
var result = document.getElementById("pId").compareDocumentPosition(document.getElementById("divId"));
//2,給定的divId在參考的pId的前面,居前
var result = document.documentElement.compareDocumentPosition(document.body);
//20(16+4),給定的body被包含于參考的html中并且位于其之后
var result = document.body.compareDocumentPosition(document.documentElement);
//10(8+2),給定的html是參考的body的祖先并且位于其前
var result = document.body.compareDocumentPosition(document.body);
//0 元素一致;
插入文本 innerText屬性

該屬性可以操作元素中包含的所有文本內(nèi)容;以下面代碼示例:

This is a paragraph with a list following it.

  • Item 1
  • Item 2
  • Item 3

其innerText屬性會(huì)返回如下字符串:

This is a paragraph with a list following it.

Item 1
Item 2
Item 3

如果設(shè)置其innerText,則會(huì)變成這樣:

document.getElementById("content").innerText = "hello there";

console.log(document.body.outerHTML);
// 
//     
hello there
// //

如果在其中加入了html標(biāo)簽,則會(huì)變成這樣:

document.getElementById("content").innerText = "

hello there

"; console.log(document.body.outerHTML); // //

hello there

// //

利用這一點(diǎn)可以用這個(gè)屬性去掉所有的html標(biāo)簽,如下:

document.getElementById("content").innerText = document.getElementById("content").innerText;

console.log(document.body.outerHTML);
// 
//     
This is a paragraph with a list following it.

Item 1
Item 2
Item 3
// //

值得注意的是Firefox雖然不支持innerText,但支持textContent屬性。為了兼容性,應(yīng)采用下面的代碼:

function getInnerText(element) {
    if (typeof element.textContent == "string") {
        return element.textContent;
    } else {
        return element.innerText;
    }
}
function setInnerText(element, text) {
    if (typeof element.textContent == "string") {
        element.textContent = text;
    } else {
        element.innerText = text;
    }
}
outerText屬性(盡量不要用)

innerText屬性的區(qū)別:

var div = document.getElementById("content");
div.innerText = "hello there";
console.log(document.body.innerHTML); //
hello there
var div = document.getElementById("content"); div.outerText = "hello there"; console.log(document.body.innerHTML); //hello there

因?yàn)檫@個(gè)屬性會(huì)導(dǎo)致調(diào)用它的元素不存在,因此這個(gè)屬性并不常用

滾動(dòng)

主要有以下幾個(gè)方法:

scrollIntoView():true的話盡量顯示在頂端,false的話則是底部;

scrollIntoViewIfNeeded(alignCenter):如果為true,則表示盡量將元素顯示在視口中部;

scrollBy(xnum,ynum):xnum 必需,把文檔向右滾動(dòng)的像素?cái)?shù);ynum必需,把文檔向下滾動(dòng)的像素?cái)?shù)。

另外,scrollByLinew(lineCount)以及scrollByPages(pageCount)這兩個(gè)方法,在chrome測(cè)試了一下,并無(wú)反應(yīng)。不知是否兼容問(wèn)題。

下面是document獲得焦點(diǎn)的時(shí)候,自動(dòng)以每10毫秒的速度往下滾屏:

var x = setTimeout(focus, 10);
function focus() {
    if (document.hasFocus()) {
        window.scrollBy(0,1);
    }
var y = setTimeout(focus, 10);
}

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

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

相關(guān)文章

  • JavaScript DOM擴(kuò)展——“選擇符API和元素遍歷”注意要點(diǎn)

    摘要:實(shí)際上,的核心就是通過(guò)選擇符查詢文檔取得元素的引用。方法該方法接收一個(gè)選擇符,返回的是所有匹配的元素而不僅僅是一個(gè)元素。而其底層實(shí)現(xiàn)則類似于一組元素的快照,而非不斷對(duì)文檔進(jìn)行搜索的動(dòng)態(tài)查詢。 選擇符API Selector API Level1 的核心就是兩個(gè)方法:querySelector()和querySelectorAll()。實(shí)際上,jQuery的核心就是通過(guò)CSS選擇符查詢D...

    justCoding 評(píng)論0 收藏0
  • JavaScript DOM擴(kuò)展——“HTML5”注意要點(diǎn)

    摘要:如他返回的對(duì)象是。方法,這個(gè)方法用于確定文檔是否獲得了焦點(diǎn)。另外,需要注意的是,該屬性插入元素并不會(huì)執(zhí)行其中的腳本。在中,方法接收一個(gè)字符串,返回一個(gè)經(jīng)過(guò)無(wú)害處理后的版本。屬性同樣的,在讀模式下返回調(diào)用它的元素及所有子節(jié)點(diǎn)的標(biāo)簽。 與類相關(guān)的擴(kuò)充 getElementsByClassName()方法 接收一個(gè)參數(shù),即一個(gè)或多個(gè)類名的字符串。如: console.log(documen...

    cppowboy 評(píng)論0 收藏0
  • JavaScript DOM2和DOM3——“DOM變化”注意要點(diǎn)

    摘要:和級(jí)分為許多模塊,分別描述了的某個(gè)非常具體的子集。這些模塊主要有核心視圖事件樣式遍歷和范圍以及。另外還有方法和方法框架的變化框架和內(nèi)嵌框架分別用和表示,它們?cè)诩?jí)中都有一個(gè)新屬性這個(gè)屬性包含一個(gè)指針,指向表示框架內(nèi)容的文檔對(duì)象。 DOM2和DOM3級(jí)分為許多模塊,分別描述了DOM的某個(gè)非常具體的子集。這些模塊主要有核心(Core)、視圖(Views)、事件(Events)、樣式(Styl...

    騫諱護(hù) 評(píng)論0 收藏0
  • JavaScript DOM2和DOM3——“遍歷”注意要點(diǎn)

    摘要:級(jí)遍歷和范圍模塊定義了兩個(gè)用于輔助完成順序遍歷結(jié)構(gòu)的類型和這兩個(gè)類型能夠基于給定的起點(diǎn)對(duì)結(jié)構(gòu)執(zhí)行深度優(yōu)先的遍歷操作。其中的屬性,表示任何遍歷方法在上一次遍歷中返回的接待你。通過(guò)設(shè)置這個(gè)屬性也可以修改遍歷繼續(xù)進(jìn)行的節(jié)點(diǎn)。 DOM2級(jí)遍歷和范圍模塊定義了兩個(gè)用于輔助完成順序遍歷DOM結(jié)構(gòu)的類型:NodeIterator和TreeWalker;這兩個(gè)類型能夠基于給定的起點(diǎn)對(duì)DOM結(jié)構(gòu)執(zhí)行深度...

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

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

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<