我需要這個(gè)來進(jìn)行SEO優(yōu)化。我正在處理的網(wǎng)站上有一小部分頁(yè)面是動(dòng)態(tài)生成的,但它們的元數(shù)據(jù)非常通用- 即使這5個(gè)(不同的)頁(yè)面具有相對(duì)不同的內(nèi)容,它們的標(biāo)題和描述也是相同的,我想要避免這種情況。
我想要透過JavaScript將特定頁(yè)面的內(nèi)容插入其元標(biāo)籤中。
頁(yè)面的結(jié)構(gòu)如下:
<html> <head> <title>這是我想要替換的當(dāng)前標(biāo)題</title> <meta name="description" content="這是我想要替換的當(dāng)前描述。"> </head> <body> <h1>文章標(biāo)題</h1> <div class="intro"> <p>這里是簡(jiǎn)介文本</p> </div> <div class="content"> <p>這里是內(nèi)容</p> <p>更多內(nèi)容</p> <p>還有更多內(nèi)容</p> </div> </body> </html>
我想要注入以下內(nèi)容:
".intro"(在這個(gè)例子中是"這裡是簡(jiǎn)介文字") -> 到頁(yè)面的元描述
和
"h1"(在這個(gè)例子中是"文章標(biāo)題") -> 到頁(yè)面的元標(biāo)題
讓最終結(jié)果看起來像這樣:
<head> <title>文章標(biāo)題</title> <meta name="description" content="這里是簡(jiǎn)介文本。"> </head>
由於我的JavaScript技能有限,目前我只能透過以下方式更改頁(yè)面的標(biāo)題和元描述:
document.title = "文章標(biāo)題"; document.getElementsByTagName('meta')["description"].content = "這里是簡(jiǎn)介文本。";
顯然,這種方式太靜態(tài),無法從頁(yè)面內(nèi)容中取得任何資料。
我該如何修改上述兩行程式碼,以便將所需的字串注入到元標(biāo)題和描述中?
我將避免對(duì)最佳SEO實(shí)踐發(fā)表評(píng)論(因?yàn)樵u(píng)論已經(jīng)很好地解決了這個(gè)問題),只回答你問題中的程式碼部分。
你只需要引用那個(gè)meta
元素並調(diào)整content
屬性。
<!doctype html> <html> <head> <title>文章標(biāo)題</title> <meta name="description" content="這里是簡(jiǎn)介文字。"> </head> <body> <!-- 將這個(gè)<script>標(biāo)簽放在閉合的body標(biāo)簽之前, 這樣它會(huì)在所有頁(yè)面HTML解析完之后運(yùn)行。 --> <script> // 獲取對(duì)meta元素的引用: const meta = document.querySelector("meta[name='description']"); console.log(meta); // 用于測(cè)試 meta.content = "新的內(nèi)容"; // 將其設(shè)置為你需要的任何值。 console.log(meta); // 用于測(cè)試 </script> </body> </html>