在网站和iframe中打开图表 - 制作twitter,fb只读取iframe中的一个

时间:2015-10-01 14:30:33

标签: jquery facebook iframe

我有客户,他们的网站上有一个iframe,我的产品在那里展示。每个产品都有其独立的og:image和twitter:图像元标记和twitter / fb共享按钮。

不幸的是,Twitter和Facebook只是阅读客户网站的元标记,而不是iframe中的一次,因此发布的picuters和描述是错误的。还有一种情况是一个客户拥有自己的og和twitter元标记,在这种情况下,twitter / fb正在读取客户og元标记。

我正在搜索的解决方案是,如果有人点击iframe中的分享按钮,则Twitter和fb会从iframe获取打开的图形元标记信息。

这是可能的,使用什么样的技术,我可以说twitter / fb从iframe获取我的og meta标签而不是顶级网站的那些。我已经看过如何使用jquery读取iframe中的元标记的示例,但是如何将其交给twitter和fb?因此,在包含我的iframe的页面上,iframe中的元标记将从主网站的athorwise中读取。

感谢您阅读我的问题,希望有人有个好主意。

1 个答案:

答案 0 :(得分:1)

就像@CBroe在评论中提到的那样:OpenGraph <meta>标签需要由提供服务的Web服务器添加到文档中,而不是通过javascript添加。

如果您的网站是外部的单个文档,但所有导航活动都发生在iframe中,那么您可能会让大多数用户感到不安,并且您几乎无法将任何人链接到特定内容。

话虽这么说,当你将它放在iframe内的页面上时,这与你如何使分享按钮正常工作是正交的。您可以为每个内部文档的URL配置共享按钮,即显示当前在iframe中显示的内容的URL。该文档可能包含所有必需的OpenGraph <meta>数据 但这也意味着人们点击由此产生的共享链接将被定向到内部文档,而不会将iframe包裹在其中。

您可以使用javascript将任何人重定向回您的索引文档(使用实际内容呈现iframe)来解决此问题,并希望这也可能导致该索引文档随后在iframe中加载正确的内容。这个想法可能不太好,因为它会触发一堆重定向,它依赖于Javascript来工作。

另一种方法是开始使用以#!开头的片​​段。在片段中,您可以编码索引文档的iframe中当前显示的内容。 如果您将JavaScript添加到识别当前片段的索引文档中,然后将相应的内容加载到iframe中,那么您将向用户提供正确的内容而无需重定向。此外,使用带有此类片段的网址可与Facebook刮刀一起使用,因为它将遵循_escaped_fragment_ specification