有網友來信問說是否能存取網頁中的 Title 標籤的內容,我想應該是要用來動態設定網頁在瀏覽器中顯示的標題吧。既然都說是標籤了,那我們就能直接用 jQuery(TagName) 的 .text() 來存取其內容:
檢視原始碼 JavaScript
1 2 3 | // Firefox, Chrome...OK // IE 6~8...XD $("title").text(); |
這樣的語法在 Firefox 及 Chrome 中都能順利取得內容,但...你知道的...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 的屬性來存取就好。
精闢的說明解決了我的疑惑,常常拜讀男兄的JQ技術文件,真是獲益良多啊!
你太客氣了..
這些文章也算是筆記為主...畢竟人的大腦是不可靠的XD
你好,本身剛接觸 jquery不是很久,也不是很熟,還正在研究中...
自己有做一個表單,是想讓網友在做交換連結的時候,貼上網址,就能連帶把 meta裡「description、keywords」等資訊秀出來寫入資料庫當中。
看過男兄的這篇文章,似乎只有抓取,但不是抓取
所以自己在網路上也有找到一些方式,但都沒有顯示出來。例如:我用 var description = $("meta[name=description]").attr("content");去擷取,但卻沒作用,想請問男兄像我們要抓取值,是要如何撰寫才正確,煩請解說,謝謝
大小寫有差..你的 description 的 d 是小寫嗎..?
我試著抓 meta 是 OK 的耶@@
有字不見....
補充:似乎只有抓取title,但不是抓取meta
因為我是有用 curl去抓取某網頁,再抓取 meta值,如果是本頁的 meta值是正常的,只是我想要做的是擷取隨機貼入 input裡的連結後,再抓取該站的描述跟標題這樣。
其實我想做的是像這樣子頁面的東西啦 ^_^
http://www.sitebro.tw/register/step1/
不然就是取到原始碼後在用正規表示法來過濾囉
jQuery 143 版 似乎不能用$(document).attr("title") 來抓??
如果只是要取值的話,還是可以用 .html() 的方式。或者直接使用 document.title
請問老師我今天有1個網頁index.php用include把底下很多網頁抓進來可是有一個問題當我預覽這include過來的分頁他的title還是index.php的title,如果我想把每個include進來的分頁的title都替代掉原本index.php的title用這方法有辦法麼?
或者是還有其他更好的辦法?
你這..已經是 php 的部份了, 但你一頁 include 很多頁時, title 也頂多只甭顯示一個
對阿 ! 對阿 ! 我在找看看 ~ 這title問題還真麻煩!如果用if... elseif...去寫也很多(假如網站幾十頁的話) 如果能夠我要include那個分頁,那個分頁的title就被叫出來這是最好不過了 ~"~
由於剛接觸JavaScript不久 想請問有辦法使用JavaScript來取得在瀏覽器上所打的關鍵字嗎?
你的瀏覽器上所打的關鍵字是指什麼呢?