2012-01-30 5 views
0

나는 내 웹 사이트와 페이스 북에 대한 링크를 만들고 거기에 메타 데이터를 넣으려고하고있다! 내 목표는이 데이터를 관리하는 것입니다 :동적으로 og 태그를 추가하여 렌더링 할 수 있습니까?

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

불행히도, (PHP)에 내 웹 응용 프로그램이 잘 구조화되지 않습니다, 나는 올바른 MVC를 정의하지 않았습니다! 이것은 매우 절차 적이므로, 메인 메타 태그 섹션을 렌더링 한 후에 데이터베이스에서 메타 태그에 넣어야하는 정보를 추출합니다.

그럼, 내가하려고하는 것은 이것이다 :

<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 : 태그가 자바 스크립트로 처리되지 않는 이유는 페이스 북이 자바 스크립트를 렌더링하지 않기 때문입니다. 그냥 정적 HTML처럼 상단에서 OG 태그를 읽고 페이지를 묻습니다.

유일한 옵션은 구조를 변경하고 출력 전에 콘텐츠를로드하는 것입니다. MVC로 바꿀 필요가 없습니다. 머리 위로 내용을로드하면 작업량을 줄이고 작업량을 줄일 수 있습니다.

+0

사실 머리에 메타 태그를 추가하면 페이스 북 렌더링 (첨부 이후에 실행 됨)에서 사용할 수 있어야합니다. 나는 왜 그것이 작동하지 말아야하는지 이해하지 못한다 : – markzzz

+0

@markzzz 페이스 북의 파서가 자바 스크립트를 실행하지 않는다. 조금도. JavaScript가 없으면 ** 아무 데나 ** 추가되는 것이 없습니다. – ceejayoz

+0

나는 그렇게 생각한다! 어떻게 메타 태그를 얻을 수 있습니까? 어쨌든 JS가 없으면 Facebook 플러그인이 전혀 작동하지 않으므로 걱정하지 않아도됩니다. – markzzz

관련 문제