Facebook Share 不会拾取页面加载后更改的标题/描述元标记
显然,Facebook Share 不会获取页面加载后更改的标题/描述元标记(通过 JavaScript)。它基本上使用加载时可用的元标记。
这是一个简单示例。
- 单击该链接将更改标题/描述元标记。您可以使用 Firebug 进行确认。
- 单击 f|Share 按钮:Facebook 仍然始终显示“页面加载时可用的标题”。和“页面加载时可用的描述”。
有人知道如何解决这个问题吗?
Apparently Facebook Share doesn't pick up the title / description meta tags that are changed (via JavaScript) after the page load. It basically use the meta tags that are available upon load.
This is a simple example.
- The link will change the title / description meta tags upon click. You can confirm that using Firebug.
- Click the f|Share button: Facebook still always shows "A title that is available upon page load." and "A description that is available upon page load."
Anybody knows how to fix this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这是 Facebook 的一句话。当有人共享该页面时,他们会抓取该页面的元标记,并且以后每隔 24 小时抓取一次(而不是像您建议的那样在页面加载时抓取)。如果您更改元标记,则需要让 FB 使用 URL Linter< 再次“lint”您的页面/a>.
来源
This is a quote from Facebook. They scrape the page's meta tags when someone shares that page, and every 24 hours onwards (and not on page-load as you suggested). If you change the meta tags, you need to get FB to "lint" your page again using the URL Linter.
Source
因为 facebook 服务器会点击您提交的 URL 并查找元标记。它将始终默认为原始标签。
Because the facebook server hits the URL you submit and looks for meta tags. It will always default to the original tags.
我假设 Facebook 服务器在抓取您的页面时不会执行 javascript。
您可以使用服务器端逻辑来检测 Facebook 用户代理并相应地修改输出的 HTML。
根据本页底部( http://developers.facebook.com/docs/opengraph/ ),用户代理当前是:
I assume that Facebook servers do not execute javascript when they scrape your page.
You could use server-side logic to detect the Facebook user agent and modify the outputted HTML accordingly.
According to the bottom of this page ( http://developers.facebook.com/docs/opengraph/ ), the user agent is currently:
这与 Facebook 无关。他们只是提供了一个API。 api 将元标记作为参数。因此,您将元标记设置为 Facebook 共享。
Its none of Facebook business. They just provide an api for it. And api takes meta tags as parameter. So you set your meta tags to facebook sharing.