为啥 instagram 嵌入代码只显示一个 instagram 图标,而不是图像?
Posted
技术标签:
【中文标题】为啥 instagram 嵌入代码只显示一个 instagram 图标,而不是图像?【英文标题】:Why is instagram embed code only showing an instagram icon, not the image?为什么 instagram 嵌入代码只显示一个 instagram 图标,而不是图像? 【发布时间】:2016-05-19 11:41:54 【问题描述】:我想将我 instagram 帐户中的照片嵌入到我的博客中。我认为这将是一个简单的案例,从照片中复制嵌入代码,将其粘贴到我的编辑器中,然后我就走了。 不过,情况似乎并非如此。从屏幕截图中可以看出,我得到了照片信息,但没有照片。
如果我只在 html 中添加一个图片标签,图片就完美了,但不是 instagram 照片的风格。
即
<img src="https://www.instagram.com/p/BFbPlbwIceD" />
有没有人知道为什么嵌入代码不起作用。我也尝试过在纯 html 文件中嵌入代码,但它也不起作用,所以不是我的 CMS 导致了问题,而是 Umbraco。
【问题讨论】:
【参考方案1】:(以下答案仅适用于没有服务器的本地 html 文件)
我遇到了同样的问题,并注意到嵌入代码中的这一行:
<script async defer src="//platform.instagram.com/en_US/embeds.js"></script>
当我将方案(“http”)添加到如下所示的源时,图像正确显示。
<script async defer src="http://platform.instagram.com/en_US/embeds.js"></script>
希望这会有所帮助。
【讨论】:
这似乎只出现在 umbraco.config 文件中,这意味着每次我从 umbraco 添加图像时,我都需要手动更改此文件。我的想法是正确的,还是有另一个我没有找到应该编辑的文件? 我对CMS本身没有任何经验,但也许你可以看看这个配置文件EmbededMedia.config。我还尝试将整个 html 嵌入代码从 instagram 复制到演示站点 belle.byte5.net 的新页面中,并且图像显示正常。我还没有尝试过嵌入功能,因为它需要更改我手头没有的配置文件。 还有一点需要注意的是,我上面的答案仅适用于在没有服务器的情况下打开本地 html 文件,在这种情况下,是方案“file:///”导致了问题。除此之外,我不太明白为什么您的图像没有出现。或许你可以尝试打开开发者工具 -> 网络选项卡,看看 embed.js 文件是否加载成功。 这仍然没有解决,但你的回答非常有帮助。谢谢。 这对我有用,但我不得不将其更改为简单地使用 https 而不是 httphttps://platform.instagram.com/en_US/embeds.js
【参考方案2】:
问题的原因是
<script async src="//www.instagram.com/embed.js"></script>
在之前运行
<blockquote>...</blockquote>
存在于 DOM 中。这意味着脚本在加载时找不到任何块引用来转换为 iframe。
由于脚本被标记为异步,您可能会遇到竞争条件,每次刷新时您会获得不同的加载顺序。
您需要确保在出现块引用后加载脚本。将脚本部分移动到文档的末尾。或者如果稍后使用 JS 将 DOM 添加到 DOM 中,也可以运行
instgrm.Embeds.process()
确定在 DOM 之后。
来源:https://www.instagram.com/developer/embedding/
【讨论】:
【参考方案3】:我有同样的问题。在反应中,您必须像这样处理嵌入:
componentDidMount()
window.instgrm.Embeds.process();
这是为我做的!
【讨论】:
对我来说window.instgrm
总是未定义的。
这对我有用,因为嵌入代码位于 JS 选项卡中,并且最初未加载代码。 @Alex,尝试在开发人员控制台中检查“instgrm”对象,很可能是当您检查时该对象尚未定义......
对于我使用 Angular,我添加了: 到 index.html 之后的 body 标签. 每次加载。【参考方案4】:
已报告此问题。
似乎是一个不容易修复的已知问题: http://issues.umbraco.org/issue/U4-8646
【讨论】:
【参考方案5】:我迟到了,但目前该问题似乎仍在许多网站上发生。
在我自己的网站上进行了一些研究后,我注意到控制台在加载时出现错误。按照错误中的链接将我带到以下位置
https://www.instagram.com//www.instagram.com/static/bundles/es6/EmbedSDK.js/47c7ec92d91e.js
显然该页面没有加载 js,因为它不是正确的网络链接。
要克服这个问题,请替换嵌入底部的这一行
<script async src="//www.instagram.com/embed.js"></script>
有了这个
<script async src="https://instagram.com/static/bundles/es6/EmbedSDK.js/47c7ec92d91e.js"></script>
它目前可以工作,但如果他们再次更改 js url,它可能会破坏链接。
它现在应该出现了。
【讨论】:
【参考方案6】:我这样做。
在 index.html 中导入脚本
<script async src="http://www.instagram.com/embed.js" type="text/javascript"></script>
和
useEffect(() =>
if (window.instgrm)
window.instgrm.Embeds.process();
, [articleId]);
这对我有用。
【讨论】:
【参考方案7】:Instagram API 可能已更改,最近有人报告了类似的问题,即推文嵌入不正确。将其作为问题记录在http://issues.umbraco.org.uk 上并提供一些报告步骤,希望有人能够修复它。
我刚刚测试过,它对我也一样。
【讨论】:
【参考方案8】:我遇到了这个问题,最终发现,如果您在编辑器中将网址单独放在一行上,较新版本的 wordpress 将自动嵌入图像或视频。我怀疑这是最近添加的,因为我不得不搜索一段时间才能找到它。例如,我在此页面上使用它为帖子添加了 Instagram 视频:http://blog.pokefind.com/awesome-pokemon-go-functioning-costume/
【讨论】:
这在主题 > 自定义 > 小部件 > 侧边栏中不起作用,它只显示 URL。【参考方案9】:信不信由你——我想我已经解决了这个问题。 只需添加这一行
<iframe style="display:none"></iframe>
到您的代码,一切都会完美运行。
【讨论】:
试图在嵌入代码之前和之后添加这个,但都没有任何效果。以上是关于为啥 instagram 嵌入代码只显示一个 instagram 图标,而不是图像?的主要内容,如果未能解决你的问题,请参考以下文章
Android WebView 不显示图片 Instagram 嵌入