我知道,這通過PHP supervars是不可能的,但是看到這個網站:獲取實際的URL HASH在PHP
當我們瀏覽的網頁,標題和meta只是變化,這會影響Facebook的太多,看:
他是怎麼做到的?我也有一個ajax導航系統,需要設置og,但我不知道如何做dinamically。
只是一個評論,他已經隱藏的輸入與元值:
但我仍然不知道他怎麼可以在這個網站正在呈現之前解析此。
我知道,這通過PHP supervars是不可能的,但是看到這個網站:獲取實際的URL HASH在PHP
當我們瀏覽的網頁,標題和meta只是變化,這會影響Facebook的太多,看:
他是怎麼做到的?我也有一個ajax導航系統,需要設置og,但我不知道如何做dinamically。
只是一個評論,他已經隱藏的輸入與元值:
但我仍然不知道他怎麼可以在這個網站正在呈現之前解析此。
URL片段永遠不會發送到服務器。它被瀏覽器用作參考。 「傳統上」用於滾動到帶有片段引用的ID的元素,但最近它已被賦予一些更具特殊用途的用途。
特別是,#!
是一個shebang,它的含義是「這個頁面正在被AJAX加載,但是如果你加載了以下相對於域名,你將會得到完整的頁面」 - 這個特別有用爲搜索引擎。
基本上,使用AJAX與location.hash
結合起來使用它。
這只是一些JS(jQuery的)
<script type="text/javascript">
var current_page = '';
$("a").live("click", function(){
return change_hash(this,1);
});
function change_hash(el,type) {
if(type==1) {
var link = $(el).attr("href");
}
else
{
var link = el;
}
var link_ar = link.split('/#!');
if(link_ar[1]!=undefined) {
if((link_ar[1].length>3)&&(link_ar[1].substr(0,1)=='/')) {
window.location.hash = '#!'+link_ar[1];
return false;
}
else
{
return true;
}
}
else
{
return true;
}
return false;
}
$(function(){
$(window).hashchange(function(){
address = location.hash.replace("#!","");
var skip=false;
if((address.substr(0,1)=='/')&&(address!=current_page)) {
$("#content").html('<div class="content-box"><div class="ajax-loading">carregando...</div></div>');
$("html, body").animate({ scrollTop: 0 }, "slow");
if (address.indexOf(".php") == -1) {
var newaddress = address.replace(/[^a-zA-Z0-9_\.]+/g,"");
if('/'+newaddress!=address) { change_hash('/#!/'+newaddress,2);skip=true; }
address='/PerfilDetalhe.php?user='+newaddress;
}
if(skip==false) {
$.get('http://www.suamusica.com.br'+address, function(htmldata) {
$("#content").html(htmldata);
document.title = $('#metaTitle').val();
$('meta[name=description]').attr('content', $('#metaDescr').val());
$('meta[name=keywords]').attr('content', $('#metaKeywords').val());
$('meta[property="og\\:description"]').attr('content', $('#metaDescr').val());
$('meta[property=og\\:title]').attr('content', $('#metaTitle').val());
$('meta[property=og\\:url]').attr('content', $('#metaURL').val());
$('meta[property=og\\:image]').attr('content', $('#metaImage').val());
$('meta[property=og\\:type]').attr('content', $('#metaType').val());
$('meta[name=DC\\.title]').attr('content', $('#metaTitle').val());
$('meta[name=DC\\.description]').attr('content', $('#metaDescr').val());
$('meta[name=DC\\.subject]').attr('content', $('#metaKeywords').val());
}).fail(function() { $("#content").html('<div class="content-box error-box"><h1>Ooops!</h1><p>A página acessada não existe ou não foi encontrada.</p></div>'); });
current_page = address;
}
$.get('http://www.suamusica.com.br/msg_check.php', function(resp) {
if(resp==1) {
$('#msg-notify').show();
}
else $('#msg-notify').hide();
})
$('.tipsy-s').remove();
}
});
var loc_h_n = window.location.hash.replace("#", "").replace("!", "").replace(".do", ".php")
if(window.location.hash!='#!'+loc_h_n&&window.location.hash!='') {
window.location.hash = '#!'+loc_h_n;
}
$(window).hashchange();
});
</script>
,你可以看到他在點擊返回false和行爲基礎上的#標籤值
我已經有了這方面的工作,我的問題是與OG: *和標題標籤是dinamyc。 –
我不確定你的意思。 Facebook正在認識shebang並檢索包含相關元標記的適當URL,可能通過PHP的echo回覆函數。 –
http://www.novomp3.com.br/?_escaped_fragment_=show&id=60我也有一個aproppiate網址,谷歌模擬器得到完美的網址,但Facebook並沒有像這樣讀取。看到這個網頁的代碼,看看那裏:http://developers.facebook.com/tools/debug/og/object?q=http%3A%2F%2Fwww.novomp3.com.br%2F%3F_escaped_fragment_%3Dshow% 26id%3D60 –