Home » jQuery 技巧

[jQ]如何存取網頁中的標題(Title)

有網友來信問說是否能存取網頁中的 Title 標籤的內容,我想應該是要用來動態設定網頁在瀏覽器中顯示的標題吧。既然都說是標籤了,那我們就能直接用 jQuery(TagName).text() 來存取其內容:

檢視原始碼 JavaScript
1
2
3
// Firefox, Chrome...OK
// IE 6~8...XD
$("title").text();

這樣的語法在 FirefoxChrome 中都能順利取得內容,但...你知道的...IE 就是很不一樣,不管是 IE 6~8 都是取到空字串的內容。

筆者不死心的又用另三種方式來試試:

檢視原始碼 JavaScript
1
2
3
4
5
6
7
8
9
// IE 6~8, Chrome...OK
// Firefox...undefined
$("title").attr("innerText");
 
// IE 6~8, Firefox, Chrome...OK
$("title").html();
 
// IE 6~8, Firefox, Chrome...OK
$("title").attr("innerHTML");

ㄟ~看來要讓這幾個瀏覽器都能正常的是要用 .html() 或是 .attr("innerHTML") 的方式才行哩。那剛剛我們是 Get 的部份,現在我們再試試怎樣 Set

檢視原始碼 JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// Firefox, Chrome...OK
// IE 6~8...Exception
$("title").text("男丁格爾's 脫殼玩");
 
// Chrome...OK
// IE 6~8...Exception
// Firefox...Nothing
$("title").attr("innerText", "男丁格爾's 脫殼玩");
 
// Firefox, Chrome...OK
// IE 6~8...Exception
$("title").html("男丁格爾's 脫殼玩");
 
// Firefox...OK
// IE 6~8, Chrome...Exception 
$("title").attr("innerHTML", "男丁格爾's 脫殼玩");

哇~~~看到結果就讓我頭痛了啦!!沒有一種方式是可以讓這些瀏覽器都能同時正常的設定。怎麼辦呢?難道要針對瀏覽器來寫不同的語法嗎?

唔...筆者記得之前用 JavaScript 來設定時,是使用 document.title 的方式來設定,這樣也就表示說, titlte 其實是 document 的一個屬性而已。既然是 document 的屬性,那麼要存取 title 時就是用 .attr("title") 的方式:

檢視原始碼 JavaScript
1
2
3
4
5
// IE 6~8, Firefox, Chrome...OK
$(document).attr("title");
 
// IE 6~8, Firefox, Chrome...OK
$(document).attr("title", "男丁格爾's 脫殼玩");

也許 jQuery 在處理 Title 時可能有些問題沒考慮到,但最後我們至少可以把它當成是 document 的屬性來存取就好。

範例 1

檔案描述
基本的範例檔案(免空) 開始下載
基本的範例檔案 會員限定

14 筆針對 [jQ]如何存取網頁中的標題(Title) 的迴響

  1. 你好,本身剛接觸 jquery不是很久,也不是很熟,還正在研究中...
    自己有做一個表單,是想讓網友在做交換連結的時候,貼上網址,就能連帶把 meta裡「description、keywords」等資訊秀出來寫入資料庫當中。

    看過男兄的這篇文章,似乎只有抓取,但不是抓取
    所以自己在網路上也有找到一些方式,但都沒有顯示出來。例如:我用 var description = $("meta[name=description]").attr("content");去擷取,但卻沒作用,想請問男兄像我們要抓取值,是要如何撰寫才正確,煩請解說,謝謝

  2. 請問老師我今天有1個網頁index.php用include把底下很多網頁抓進來可是有一個問題當我預覽這include過來的分頁他的title還是index.php的title,如果我想把每個include進來的分頁的title都替代掉原本index.php的title用這方法有辦法麼?
    或者是還有其他更好的辦法?

      • 對阿 ! 對阿 ! 我在找看看 ~ 這title問題還真麻煩!如果用if... elseif...去寫也很多(假如網站幾十頁的話) 如果能夠我要include那個分頁,那個分頁的title就被叫出來這是最好不過了 ~"~

發表迴響