2012-07-21 82 views
0

我使用下面的javascript函數將Facebook元數據移動到頭部,這對於訪問者來說很好,但是當FB抓取頁面時沒有,我如何在Facebook抓取頁面時執行此操作?當Facebook抓取網站時執行Javascript

function metaBodyToHead() { 

    var head = document.head, 
     metaTAGs = document.getElementsByTagName("DIV"); 

    for(var i = 0, ln = metaTAGs.length; i < ln; i++) { 

     head.appendChild(metaTAGs[ i ].parentNode.removeChild(metaTAGs[ i ])); 
    } 
} 

metaBodyToHead(); 

我需要在頭部的元數據當Facebook抓取網頁

測試頁:http://greenboxmedia.org/meta.html

Facebook的調試:https://developers.facebook.com/tools/debug/og/object?q=www.greenboxmedia.org%2Fmeta.html

+1

有沒有什麼可以防止你只是在頭部輸出他們? – complex857 2012-07-21 12:27:18

+0

這是他在幾個小時前問過的問題的一部分,http://facebook.stackoverflow.com/questions/11590553/move-code-generated-in-body-to-head – CBroe 2012-07-21 12:30:32

+0

生成Facebook bot的元數據只是可能與服務器端代碼。看看這裏:http://stackoverflow.com/questions/8431694/dynamic-generation-of-facebook-open-graph-meta-tags順便說一句,你可以檢測Facebook用戶或Facebook機器人是否訪問您的網站。 – borisdiakur 2012-07-21 13:29:39

回答

3

我怎麼能執行此當Facebook抓取頁面?

當然沒有

Facebook的刮板只是看你的頁面的HTML代碼;它不是一個完整的「瀏覽器」,它可以執行任何客戶端代碼。

您必須將您的OG元數據放入請求URL時獲取的HTML代碼中。這就是它的工作原理。