上一次提到,在報(bào)表軟件FineReport的JavaScript開發(fā)中,可以訪問并處理的HTML DOM對(duì)象有windows、location、document三種。這次就繼續(xù)介紹后兩種,location和document對(duì)象。
Location
Location 對(duì)象包含有關(guān)當(dāng)前 URL 的信息。 Location 對(duì)象是 Window 對(duì)象的一個(gè)部分,可通過 window.location 屬性來訪問。
location對(duì)象的常用屬性
hash 設(shè)置或返回從#開始的URL
host 設(shè)置或返回主機(jī)名和當(dāng)前URL的端口號(hào)
hostname 設(shè)置或返回當(dāng)前URL的主機(jī)名
href 設(shè)置或返回完整的URL
pathname 設(shè)置或返回當(dāng)前URL的路徑部分
port 設(shè)置或返回當(dāng)前URL的端口號(hào)
search 設(shè)置或返回從?開始的URL(查詢部分)
1.location對(duì)象的reload()方法
reload()方法用于重新加載當(dāng)前文檔
語法為:
location.reload(false)
如果該方法沒有規(guī)定參數(shù),或者參數(shù)是 false,它就會(huì)用 HTTP 頭 If-Modified-Since 來檢測(cè)服務(wù)器上的文檔是否已改變。如果文檔已改變,reload() 會(huì)再次下載該文檔。如果文檔未改變,則該方法將從緩存中裝載文檔。這與用戶單擊瀏覽器的刷新按鈕的效果是完全一樣的。
如果把該方法的參數(shù)設(shè)置為 true,那么無論文檔的最后修改日期是什么,它都會(huì)繞過緩存,從服務(wù)器上重新下載該文檔。這與用戶在單擊瀏覽器的刷新按鈕時(shí)按住 Shift 健的效果是完全一樣。
Document
每個(gè)載入瀏覽器的HTML 文檔都會(huì)成為Document對(duì)象。Document 對(duì)象使我們可以從腳本中對(duì)HTML頁(yè)面中的所有元素進(jìn)行訪問。
Document 對(duì)象是 Window 對(duì)象的一部分,可通過 window.document 屬性對(duì)其進(jìn)行訪問
1.document對(duì)象的常用屬性
cookie 設(shè)置或返回當(dāng)前文檔有關(guān)的所有cookie
title 返回當(dāng)前文檔的標(biāo)題
URL 返回當(dāng)前文檔的URL
2.document對(duì)象的常用方法
2.1 close()方法
close() 方法可關(guān)閉一個(gè)由 document.open 方法打開的輸出流,并顯示選定的數(shù)據(jù)。語法:
document.close()
該方法將關(guān)閉 open() 方法打開的文檔流,并強(qiáng)制地顯示出所有緩存的輸出內(nèi)容。
如果使用 write() 方法動(dòng)態(tài)地輸出一個(gè)文檔,必須記住這么做的時(shí)候要調(diào)用 close() 方法,以確保所有文檔內(nèi)容都能顯示。
一旦調(diào)用了 close(),就不應(yīng)該再次調(diào)用 write(),因?yàn)檫@會(huì)隱式地調(diào)用 open() 來擦除當(dāng)前文檔并開始一個(gè)新的文檔。
2.2 getElementByID()方法
getElementById() 方法可返回對(duì)擁有指定 ID 的第一個(gè)對(duì)象的引用。語法:
document.getElementById(id)

參考完整代碼:
<html>
<head>
<script type="text/javascript">
function getValue()
{
var x=document.getElementById("myHeader")
alert(x.innerHTML)
}
</script>
</head>
<body>
<h1 id="myHeader" onclick="getValue()">這是標(biāo)題</h1>
<p>點(diǎn)擊標(biāo)題,會(huì)提示出它的值。</p>
</body>
</html>
2.3 getElemenByName()方法
getElementsByName() 方法可返回帶有指定名稱的對(duì)象的集合。
該方法與 getElementById() 方法相似,但是它查詢?cè)氐?nbsp;name 屬性,而不是 id 屬性。
因?yàn)橐粋€(gè)文檔中的 name 屬性可能不唯一(如 HTML 表單中的單選按鈕通常具有相同的 name 屬性),所有g(shù)etElementsByName() 方法返回的是元素的數(shù)組,而不是一個(gè)元素。
getElementsByTagName() 方法可返回帶有指定標(biāo)簽名的對(duì)象的集合。
getElementsByTagName() 方法返回元素的順序是它們?cè)谖臋n中的順序。
如果把特殊字符串 "*" 傳遞給 getElementsByTagName() 方法,它將返回文檔中所有元素的列表,元素排列的順序就是它們?cè)谖臋n中的順序。
傳遞給 getElementsByTagName() 方法的字符串可以不區(qū)分大小寫。
2.4write()方法
write() 方法可向文檔寫入 HTML 表達(dá)式或 JavaScript 代碼。 可列出多個(gè)參數(shù)(exp1,exp2,exp3,...) ,它們將按順序被追加到文檔中。
語法:
document.write(exp1,exp2,exp3,....)
通常按照兩種方式使用 write() 方法:
一是在使用該方法在文檔中輸出 HTML,另一種是在調(diào)用該方法的的窗口之外的窗口、框架中產(chǎn)生新文檔。
第二種情況中,請(qǐng)務(wù)必使用 close() 方法來關(guān)閉文檔。
示例:

參考代碼:
<html>
<body>
<script type="text/javascript">
document.write("Hello World! ","Hello You! ","<p style='color:blue;'>Hello World!</p>")
</script>
</body>
</html>