动态Facebook元标记(og:image,og:url)

时间:2013-01-16 08:11:21

标签: php javascript html facebook meta

我遇到了问题。

我希望在facebook元标记中以类似的方式更改内容属性。 在其他线程中,我已经了解到,只要页面加载,就无法使用javascript或jquery属性更改元标记。

我的想法是将facebok like按钮放在iframe中。在这个框架中,我想定义自己的元标记。这个元标记是由php $ _GET变量操纵的,这些变量是通过操纵iframe内容的javascript发送的。

但它不起作用..

简单解释: [的index.php]

<html>
 <head>
   <title>RandomPage</title>
 </head>
 <body>
  <iframe id="fb" src="fb.php">
  <iframe>
  <input type="submit" onclick="changelikebutton();" />
  <script type="text/JavaScript">
   function changelikebutton(){
     document.getElementById('fb').src = 'fb.php?l=5';
   }
  <script>
 </body>
<html>

[fb.php]

<html>
 <head>
  <meta property="og:image" content="RandomPage.com/<?php echo $_GET['l']; ?>.jpg" >
 </head>
 <body>
  <facebook script code und id >
  <div id="code für fb like button">
 </body>
<html>

这不是原始代码,但它应该解释我的想法

2 个答案:

答案 0 :(得分:1)

你走在正确的轨道上。只需为每个相似的按钮提供唯一的URL。 URL可以具有相同的域,但可以使用某些查询参数使其唯一。

<div class="fb-like" data-href="http://yourdomain.com/fb_meta.php?id=1" data-send="false" data-width="450" data-show-faces="true"></div>

当用户点击时,会为与该按钮关联的绝对URL生成类似内容。该协会通常在Facebook上生成一个故事。如果朋友决定点击该故事,他们将被重定向到相关的URL。这就是您的元标记页面将派上用场的地方。

为此,使用基本HTML创建一个fb_meta.php页面,并放入您需要的任何打开的图形标记。有关开放图表代码的更多信息,请参见herehere。您可以使用在网址上添加的查询参数(id)动态生成打开的图形代码的内容,以使其唯一。

简单地说,您可以使用$ _GET ['id']提取id,然后对您的数据库,数组或其他任何内容进行调用以获取元标记的内容。

将一个简单的javascript重定向放回到您的主站点或您喜欢的按钮所在的页面是个好主意,以便用户不会卡在空白页面上。在fb_meta.php文件的body标签中,输入:

<script>window.location = 'http://yourdomain.com';</script>

答案 1 :(得分:0)

我认为仅仅更改src属性是不够的。我认为你应该重新加载iframe内容。这是一个很好的解决方案:Dynamically change iframe's content