【发布时间】:2013-11-17 13:49:18
【问题描述】:
我正在测试 jquery-oembed-all 作为 another question 的解决方案,我已经问过了。该脚本是加载在页面中的一个小型 javascript 文件,并提供了oembed 函数用于获取媒体嵌入代码。
我可以像这样轻松地从链接中获取 oEmbed iframe:
<script>
$(function(){
tag = $(document.createElement('div')).oembed('https://vimeo.com/40179668');
$('.header').append(tag);
});
</script>
这很好用,并将 oEmbed 生成的 iframe 元素添加到页面上的.header。但是我需要生成的 HTML 作为字符串。在tag[0].outerHTML 甚至tag[0].parent()[0].outerHTML 中四处寻找刚刚发现tag 是在脚本中创建的原始空div,但它显然具有所有嵌入代码,因为嵌入的视频加载在页面上。
如何获取oembed 函数返回的HTML 作为文本字符串?是不是需要从创建的div标签遍历DOM才能找到呢?
编辑:
我添加了一些警报,这完全与时间有关。由于它是网络调用,所以在我查询 outerHTML 时,oEmbed 函数还没有返回 HTML 块。
编辑 2: 看起来这可以通过 JS 回调来解决,因为 oEmbed 调用是异步的。当我有时间寻找解决方案时,我会将其发回此处作为答案。
【问题讨论】:
-
您是否偶然找到了解决方案?
-
@Natetronn 我在下面添加了我的解决方案。它现在非常hacky,但它有效。我很快就会重构这个并会发回。它还假设您在 Rails 应用程序中执行此操作。
标签: javascript jquery oembed