2012-01-30 2 views
0

Я пытаюсь сделать ссылку на мой сайт и фейсбук, добавив некоторые метаданные! Моя цель заключается в управлении эти данные:Могу ли я динамически добавить тег og и отобразить его?

<meta property="og:title" content="MY_PAGE_TITLE" /> 
<meta property="og:description" content="MY_DESCRIPTION_TEXT" /> 

Unfortunatly, мой веб-приложений (на PHP) не является хорошо структурированным, и я не определить правильный MVC! Это очень процедурно, поэтому информация, которую я должен наложить на этот метатег, извлекается из базы данных после рендеринга основного раздела заголовка html.

Итак, что я попытался это:

<script type="text/javascript"> 
    $('head').append("<meta property=\"og:title\" content=\"MY_PAGE_TITLE\" />"); 
    $('head').append("<meta property=\"og:description\" content=\"MY_DESCRIPTION_TEXT\" />"); 
</script> 

<div id="fb-root"></div> 
<script>(function(d, s, id) { 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) return; 
    js = d.createElement(s); js.id = id; 
    js.src = "//connect.facebook.net/it_IT/all.js#xfbml=1"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk'));</script> 
<fb:like href="<?=$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]?>" send="false" layout="button_count" width="130" show_faces="false"></fb:like> 

Но на самом деле, он не работает! Я имею в виду, добавьте метатег на голову и попробуйте сделать его.

Знаете ли вы, какие-либо стратегии для этого? Я не буду использовать опцию вставлять их прямо в голову, потому что, как я уже сказал, текст, который я хотел бы вставить, можно получить после раздела главы (из-за неправильной организации веб-сайта).

Я верю в другое решение, надеюсь, что вы его знаете!

+1

Добавление тегов «» после загрузки документа может не принести пользы, с учетом характера '' тегов. – Pointy

ответ

5

Печально, но не иначе, как изменить свою структуру. Причина того, что теги og: не обрабатываются даже с вашим javascript, - это то, что facebook не отображает javascript. Он просто запрашивает страницу и читает теги OG сверху, как и статический HTML.

Ваш единственный вариант - изменить структуру и загрузить контент перед выходом. Вам не нужно меняться в MVC для этого, просто загрузите контент до того, как голова сэкономит вам кучу работы и все еще работает ...

+0

На самом деле, если я добавляю метатеги на голове, они должны быть доступны для рендеринга facebook (что он выполняется после добавления). Я не понимаю, почему это не должно работать :) – markzzz

+0

@markzzz Анализатор Facebook не выполняет JavaScript. Вообще. Без JavaScript ничего не добавляется ** в любом месте **. – ceejayoz

+0

Я так думаю! Как он может получить метатег? Во всяком случае, без JS плагины Facebook вообще не будут работать, поэтому я не против этого :) – markzzz

Смежные вопросы