【发布时间】:2012-12-05 03:51:00
【问题描述】:
我想列出一个包含分类广告的 iframe。有时,当商品不再可用时,供应商会将页面重定向到他们的主页。我希望能够识别这一点,这样我就可以在假设它已售出的情况下取消索引该项目。实现这一目标的最佳方法是什么?
【问题讨论】:
-
据我所知,这是不可能的。只有当 iframe 引用托管在您的域上的内容时,您才能执行此操作。
标签: javascript redirect iframe
我想列出一个包含分类广告的 iframe。有时,当商品不再可用时,供应商会将页面重定向到他们的主页。我希望能够识别这一点,这样我就可以在假设它已售出的情况下取消索引该项目。实现这一目标的最佳方法是什么?
【问题讨论】:
标签: javascript redirect iframe
当 iframe 位于不同的域中时,您无法检测到它的位置,除非它们为 CORS 设置了正确的标头。
不担心其他域的唯一方法是让您的服务器端代码在页面上运行检查并查看它是否重定向。
【讨论】:
您可以使用触发 onload 或 reload 的 jQuery 加载函数。
您需要存储 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 匹配。
这得益于仅检查它是否加载了多次,因为您可以定位特定来源等。
【讨论】: