如何通过编程检查一个iframe是否会被网站阻止?

9
我正在动态生成一堆加载随机网站的iframe,我想知道是否有办法通过编程来检查网站的iframing是否被阻止,以便在无法加载时使用该网站的缩略图代替。是否有这样的方法,如果有,怎么做?(最好使用JQuery)

看看这个答案:https://dev59.com/H1bUa4cB1Zd3GeqPA60R#5825702 - Sani Huttunen
很酷,但我正在寻找一个jQuery解决方案。 - Justin Meltzer
1
@kindall 我是正在进行框架的人,我想检查我正在框架的站点是否允许框架。 - Justin Meltzer
1
@RobG 听起来不错。你应该写一个回答,更详细地展示/解释所有这些内容。甚至包括如何检查网站是否被封锁 :) - Justin Meltzer
1
这是一个很好的问题,可惜它仍然没有得到完全回答。 - Lonnie Best
显示剩余3条评论
2个回答

1
一个非常快速而不太规范的绕过某些 iframe 阻止的方法是在 URL 后面添加一个免费的 deferer,比如 http://anonym.to/?site.com,但我并不推荐在合法实践中使用这种方法。

0

除非禁用JavaScript,否则无法检测和阻止框架阻塞。看看这个,这是我为回应编码恐惧帖子We've been... Framed写的一个函数!它的目的基本上是,“我们想要使框架化这个站点变得不可能...最简单的方法就是对用户进行处理。框架站点很快就会发现,并且使用者很可能会责怪他们。”(它有点邪恶,这就是为什么它只被写成一个思想实验...但它确实有效)

// if this is a framed site
if( window[ [ "t", String.fromCharCode( 111 ), "p" ].join( "" ) ] != window ) 
   destroyTheBrowser(); // royally mess with the user.

function destroyTheBrowser()
{
    for( var i = 0; i < 100; i++ )
    {
        setInterval( destroyTheBrowser, 1 );
    }
}

Firefox和Safari在使用额外的300M内存后崩溃(最近的基准测试)。Chrome会崩溃该标签页。IE会使整个操作系统瘫痪。有没有人能给我展示一个脚本,可以防止这个反反嵌入脚本真正损坏用户的浏览器?

如果你不关心JS,只需通过AJAX加载到一个overflow属性设置为scroll的div中。


1
抱歉,你能解释一下你的回答吗?你希望我运行一个无限循环来禁用嵌入网站的JS吗?我不太明白。 - Justin Meltzer
2
对,但我为什么要这样做呢?我是在给其他网站设置框架,我想检查一下我正在设置框架的网站是否已禁用框架。 - Justin Meltzer
1
但是...网站是否有一些标准化的方式让请求知道该网站是否支持iframe呢? - Justin Meltzer
1
更好的方法是将用户重定向到您的实际网站,而不是使其浏览器崩溃... - Albert Renshaw
1
@AlbertRenshaw 我也不会这样做,而且那个答案并没有建议你可以做什么,而是说如果你正在尝试创建一系列的框架站点(正如OP所请求的那样),那么有人可以对你进行这样的操作。重定向通常并不有效(看看我提供的链接)。 - cwallenpoole
显示剩余7条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接