This is a paragraph with a list following it.
- Item 1
- Item 2
- Item 3
摘要:另外,以及這兩個(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 therevar 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
摘要:實(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...
摘要:如他返回的對(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...
摘要:和級(jí)分為許多模塊,分別描述了的某個(gè)非常具體的子集。這些模塊主要有核心視圖事件樣式遍歷和范圍以及。另外還有方法和方法框架的變化框架和內(nèi)嵌框架分別用和表示,它們?cè)诩?jí)中都有一個(gè)新屬性這個(gè)屬性包含一個(gè)指針,指向表示框架內(nèi)容的文檔對(duì)象。 DOM2和DOM3級(jí)分為許多模塊,分別描述了DOM的某個(gè)非常具體的子集。這些模塊主要有核心(Core)、視圖(Views)、事件(Events)、樣式(Styl...
摘要:級(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í)行深度...
閱讀 3763·2021-10-13 09:39
閱讀 3811·2021-09-24 09:48
閱讀 1206·2021-09-01 10:30
閱讀 2538·2019-08-30 15:55
閱讀 1788·2019-08-29 16:39
閱讀 2307·2019-08-26 13:55
閱讀 3063·2019-08-26 12:23
閱讀 1645·2019-08-26 11:59