diff --git a/lib/plugins/system/oembed/oembed.js b/lib/plugins/system/oembed/oembed.js index d33470d9c..353183639 100644 --- a/lib/plugins/system/oembed/oembed.js +++ b/lib/plugins/system/oembed/oembed.js @@ -31,51 +31,60 @@ function fixOembedIframeAttributes(obj) { } function _getOembedIframe(oembed) { - if (!oembed.html) { - return null; - } + if (typeof oembed._iframe === 'undefined') { - // Allow encoded entities if they start from $lt; - var html = oembed.html5 || oembed.html; - if (/^<$/i.test(html)) { - html = entities.decodeHTML(html); - } + var _iframe = null; + + if (oembed.html5 || oembed.html) { + + // Allow encoded entities if they start from $lt; + var html = oembed.html5 || oembed.html; + if (/^<$/i.test(html)) { + html = entities.decodeHTML(html); + } + + var $container = cheerio('
'); + try { + $container.html(html); + } catch (ex) {} + var $iframe = $container.find('iframe'); + + if ($iframe.length === 2 && /