【问题标题】:Execute Javascript when Facebook crawls websiteFacebook 抓取网站时执行 Javascript
【发布时间】:2012-07-20 11:35:28
【问题描述】:

我使用下面的 javascript 函数将嵌入 Facebook 元数据移动到头部,这对访问者来说很好,但在 FB 抓取页面时不行,当 Facebook 抓取页面时我该如何执行?

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爬取页面时我需要在head中获取元数据

测试页面:http://greenboxmedia.org/meta.html

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

【问题讨论】:

  • 有什么东西阻止你把它们放在头上吗?
  • 这是他几个小时前提出的问题的一部分,facebook.stackoverflow.com/questions/11590553/…
  • 只有使用服务器端代码才能为 Facebook 机器人生成元数据。看这里:stackoverflow.com/questions/8431694/… 顺便说一下,您可以检测 Facebook 用户或 Facebook 机器人是否正在访问您的网站。
  • 它适用于具有多个用户和网站的视频解决方案,元数据位于嵌入代码中,因此我必须找到一种方法将其移动到可以嵌入生成的嵌入代码中的内容中,这不可能吗?

标签: php javascript facebook facebook-opengraph


【解决方案1】:

Facebook 抓取页面时如何执行此操作?

完全没有,当然。

Facebook 的抓取工具只会查看您页面的 HTML 代码;它不是一个可以执行任何客户端代码的成熟“浏览器”。

您必须将您的 OG 元数据放入请求 URL 时交付的 HTML 代码中。这就是它的工作原理。

【讨论】:

    猜你喜欢
    • 2014-04-07
    • 1970-01-01
    • 2011-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-30
    • 2014-12-25
    相关资源
    最近更新 更多