Facebook Share 不会拾取页面加载后更改的标题/描述元标记

发布于 2024-08-29 09:01:49 字数 333 浏览 4 评论 0原文

显然,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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

贩梦商人 2024-09-05 09:01:49

这是 Facebook 的一句话。当有人共享该页面时,他们会抓取该页面的元标记,并且以后每隔 24 小时抓取一次(而不是像您建议的那样在页面加载时抓取)。如果您更改元标记,则需要让 FB 使用 URL Linter< 再次“lint”您的页面/a>.

Facebook 何时会抓取我的页面?

Facebook 需要抓取您的页面才能知道如何在网站上显示它。
Facebook 每 24 小时抓取一次您的页面,以确保属性是最新的。当 Open Graph 页面的管理员单击 Like 按钮以及将 URL 输入 Facebook URL Linter 时,该页面也会被抓取。 Facebook 会观察您 URL 上的缓存标头 - 它将按优先顺序查看“Expires”和“Cache-Control”。但是,即使您指定更长的时间,Facebook 也会每 24 小时抓取一次您的页面。

来源

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.

When does Facebook scrape my page?

Facebook needs to scrape your page to know how to display it around the site.
Facebook scrapes your page every 24 hours to ensure the properties are up to date. The page is also scraped when an admin for the Open Graph page clicks the Like button and when the URL is entered into the Facebook URL Linter. Facebook observes cache headers on your URLs - it will look at "Expires" and "Cache-Control" in order of preference. However, even if you specify a longer time, Facebook will scrape your page every 24 hours.

Source

再可℃爱ぅ一点好了 2024-09-05 09:01:49

因为 facebook 服务器会点击您提交的 URL 并查找元标记。它将始终默认为原始标签。

Because the facebook server hits the URL you submit and looks for meta tags. It will always default to the original tags.

南烟 2024-09-05 09:01:49

我假设 Facebook 服务器在抓取您的页面时不会执行 javascript。

您可以使用服务器端逻辑来检测 Facebook 用户代理并相应地修改输出的 HTML。

根据本页底部( http://developers.facebook.com/docs/opengraph/ ),用户代理当前是:

facebookexternalhit/1.0 

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:

facebookexternalhit/1.0 
小梨窩很甜 2024-09-05 09:01:49

这与 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文