删除带有断开链接的 iframe jquery



我有这种问题,我有嵌入到网站页面中的视频的iframe。请注意,iframe 网址来自另一个域。有时这些网址可能会被破坏或停止工作,而不是视频,而是一条消息"此视频已从公共访问中删除。有什么方法可以通过jquery或javascript从页面中删除那些"失败"的iframe。

我在想我可以在类似的 iframe 中搜索文本 t

$("iframe").each(function() {
    var val = $(this).is(':contains("video has been")');
    console.log(val); // returns false
});

然后删除那些,但它返回 false,我从 http://en.wikipedia.org/wiki/Same-origin_policy 中理解了 afa。

另外,如果这很重要,我发现工作和损坏的 iframe 之间的区别(没有上面的文本)是最后一个不包含object节点。

有什么方法可以解决这个问题吗?

谢谢

由于同源策略,浏览器将阻止所有 AJAX 到不同的域和直接访问不同域的iframe。但是,有一些方法可以绕过此限制。一种方法是让服务器获取数据,然后将数据返回给客户端。这里有一个jQuery插件可以做到这一点。它使用YQL(雅虎查询语言)作为代理。

只需使用 .ajax 发出正常的 GET 请求,插件将为您处理详细信息:

$.ajax({
    url: [url of the iframe],
    type: "GET",
    success: function(data){
        $(data.responseText);  //do something with it
    }
});

http://jsfiddle.net/DerekL/HGHJ5/

当然,如果您不信任雅虎处理数据,您可以随时自己托管一个。

最新更新