Я тестирую jquery-oembed-all в качестве решения для еще один вопрос, который я задал. Сценарий представляет собой небольшой файл javascript, загружаемый на страницу и предоставляющий функцию oembed
для извлечения кода встраивания мультимедиа.
Я легко получаю iframe oEmbed по ссылке, например:
<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
, созданным в сценарии, но в нем явно есть весь код для встраивания, потому что встроенное видео загружается на страницу.
Как получить HTML, возвращаемый функцией oembed
, в виде текстовой строки? Нужно ли мне проходить DOM из созданного тега div
, чтобы найти его?
EDIT: я добавил несколько предупреждений, и все они связаны со временем. Поскольку это сетевой вызов, функция oEmbed не вернула блок HTML к тому времени, когда я запрашиваю файл outerHTML
.
РЕДАКТИРОВАТЬ 2: Похоже, это можно решить с помощью обратных вызовов JS, поскольку вызов oEmbed является асинхронным. Когда у меня будет время искать решение, я опубликую его здесь как ответ.