删除链接jquery损坏的iframe

时间:2014-02-16 05:52:00

标签: javascript jquery iframe

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

我原以为我能够在类似t

的iframe中搜索文字
$("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了解到它。

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

有没有办法解决这个问题?

由于

1 个答案:

答案 0 :(得分:1)

由于同源策略,浏览器会阻止所有AJAX到不同的域并直接访问不同域的iframe。但是,有办法绕过这个限制。一种方法是让服务器获取数据,然后将数据返回给客户端。 Here是jQuery的一个插件,可以执行此操作。它使用YQL(Yahoo Query Language)作为代理。

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

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

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

当然,如果您不相信雅虎处理数据,您可以自己主持一个。

相关问题