我有客户,他们的网站上有一个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中读取。
感谢您阅读我的问题,希望有人有个好主意。
答案 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。