Javascript 如何检测iFrame是否被重定向到另一个url?
我想列出一个带有分类广告的iframe。有时,当项目不再可用时,供应商会将页面重定向到其主页。我想能够识别这一点,这样我就可以去索引的项目,假设它已经售出。实现这一点的最佳方法是什么?如果iframe位于不同的域中,则无法检测其位置,除非为其设置了正确的头Javascript 如何检测iFrame是否被重定向到另一个url?,javascript,redirect,iframe,Javascript,Redirect,Iframe,我想列出一个带有分类广告的iframe。有时,当项目不再可用时,供应商会将页面重定向到其主页。我想能够识别这一点,这样我就可以去索引的项目,假设它已经售出。实现这一点的最佳方法是什么?如果iframe位于不同的域中,则无法检测其位置,除非为其设置了正确的头 不必担心其他域的唯一方法是让服务器端代码在页面上运行检查,看看它是否重定向。您可以使用jQuery的load函数触发onload或reload 您需要存储iframe重新加载的次数 大概 var reloaded = 0; $("#ifra
不必担心其他域的唯一方法是让服务器端代码在页面上运行检查,看看它是否重定向。您可以使用jQuery的load函数触发onload或reload 您需要存储iframe重新加载的次数 大概
var reloaded = 0;
$("#iframe_id").load(function(){
reloaded++;
});
在帧加载时,检测URL是什么:
var frameLoadCount = 0;
var firstURL;
$('iframe').load(function() {
if (frameLoadCount === 0) {
firstURL = $(this).attr('src');
} else {
if (firstURL !== $(this).attr('src')) {
// The iframe has been redirected.
}
}
});
基本上,上述代码在每次加载iframe时都会运行,检查它是否是第一次,如果是,则将URL分配给变量。如果已加载多次,请检查原始url是否与当前url匹配
这样做的好处在于只需检查它是否被多次加载,因为您可以针对特定的源等。据我所知,这是不可能的。只有当iframe引用了托管在您的域上的内容时,您才能这样做。真的吗?这只是一个加载了内容的事件,而不考虑其来源。似乎重定向响应不会触发加载事件,只会触发最终响应。除非它们允许跨域调用。简单地说“不打算在另一个领域工作”是没有用的,因为这是不正确的。如果允许的话,它可以在另一个域上工作。我打赌大多数站点默认情况下不启用CORS。是的,很难找到能够跨域引用的站点。但它确实存在,简单地说它不存在会让那些开始学习和iframe如何工作的人感到困惑。感谢你的投入,我认为跨域问题可能会阻碍它只是不知道是否有解决办法。