2012-02-10 119 views
3

我將描述什麼,我試圖完成,如果它看來,我的方法是啞巴請隨時讓我知道:JavaScript來更改元/元標記動態

我有一個網頁一個視頻庫和一個Flash視頻播放器iframe。當用戶點擊視頻縮略圖時,它開始在框架中播放。

用戶還可以通過將文件路徑附加到URL的末尾 - blabla.com/videogallery?videofilepath,並將特定的視頻加載到iframe中去頁面。我設置了這一點,以便視頻可以輕鬆共享。

我希望能夠爲Facebook/Twitter添加分享按鈕,但我無法讓他們正常工作並使用正確的元數據(圖像和標題)呈現自己。

所以我在考慮在播放器iframe中放置Share按鈕,然後在發生視頻更改時動態更新元數據標籤,但我不確定如何去解決這個問題。

任何幫助將不勝感激,謝謝。

回答

10

你想的jQuery

做的代碼是這樣的
$(document).ready(function(){ 
    $('title').text("Your new title tag here"); 
    $('meta[name=description]').attr('content', 'new Meta Description here'); 
}); 
+1

可以搜索引擎獲得新的值嗎?我嘗試使用在線seo工具(http://www.seocentro.com),它沒有得到由js設置的值。 – bwaaaaaa 2014-09-02 03:49:33

+1

沒關係得到答案 - 蜘蛛無法讀取它們,因此元數據應該在服務器端生成。 – bwaaaaaa 2014-09-02 04:44:56

5

你可以在頭標記使用這個(jQuery的)添加任何東西

$('head').append('<meta .... />'); 
+0

簡單而有效!我一直在尋找一種解決方案來爲Meteor Iron Router支持的應用程序添加標題,並找到各種複雜的解決方案。這像一個魅力。 – 2015-05-09 14:05:47

5

由於上述兩種解決方案使用JQuery,這裏是一個解決方案純javascript,incase如果有人正在尋找:

要更改標題:

<script>document.title = "this is title text";</script> 

改變任何元標記:

<meta name="description" content="this is old content which we are going to change through javascript"> 

JavaScript代碼來改變上述元標記。

<script> 
var allMetaElements = document.getElementsByTagName('meta'); 
//loop through and find the element you want 
for (var i=0; i<allMetaElements.length; i++) { 
    if (allMetaElements[i].getAttribute("name") == "Description") { 
    //make necessary changes 
    allMetaElements[i].setAttribute('content', "description you want to include"); 
    //no need to continue loop after making changes. 
    break; 
    } 
} 

好運。