检测 iFrame src 更改与内容重新加载
Detect iFrame src change vs content reload
我的基本代码如下所示:
<iframe id="iFrame1" style="display: none;"></iframe>
<iframe id="iFrame2" style="display: none;"></iframe>
$("#iFrame1").load(function () {
// display iFrame1, hide iFrame2
// set timeout to load next page
});
$("#iFrame2").load(function () {
// display iFrame2, hide iFrame1
// set timeout to load next page
});
我有一组要在 iFrame 中显示的页面(相同的域,在 iFrame 中显示没有问题)(一次只能看到 1 个 iFrame),以间隔循环30 分钟(页面显示运动结果)。
基本上,其工作方式是使用 $("#iFrame1").attr("src", "<new_url>");
设置 iFrame 1 的 src。页面完全加载后,load
函数触发并显示 iFrame1,隐藏 iFrame2。然后设置一个超时函数将下一页加载到iFrame2中,这将触发load
函数并显示iFrame2,隐藏iFrame1。这样做是为了让用户看不到页面的加载,只有在页面加载完成后 iFrame 才会可见,从而实现页面之间的平滑过渡。
一切正常!问题是其中一个页面设置为在一天中的特定时间自行重新加载 (location.reload(true);
),而我无法控制该页面。这里的问题是,该页面的重新加载也会触发该 iFrame 的 load
功能,这会导致该 iFrame 被错误地隐藏。
我的问题是,有没有办法区分 iFrame 的实际 src 变化与仅重新加载 iFrame 的内容(并且 src 保持不变)?我已经看过 document.referrer
,但什么也没给我。
我最终通过向每个 iFrame 的 load
函数添加检查来检查 iFrame 是否已经可见来解决我的问题。仅当 iFrame 当前不可见时才进行交换..
<iframe id="iFrame1" style="display: none;"></iframe>
<iframe id="iFrame2" style="display: none;"></iframe>
$("#iFrame1").load(function () {
// If iFrame 1 is hidden, show it
if($("#iFrame1").css("display") == "none")
{
// display iFrame1, hide iFrame2
// set timeout to load next page
}
});
$("#iFrame2").load(function () {
// If iFrame 2 is hidden, show it
if($("#iFrame2").css("display") == "none")
{
// display iFrame2, hide iFrame1
// set timeout to load next page
}
});
我的基本代码如下所示:
<iframe id="iFrame1" style="display: none;"></iframe>
<iframe id="iFrame2" style="display: none;"></iframe>
$("#iFrame1").load(function () {
// display iFrame1, hide iFrame2
// set timeout to load next page
});
$("#iFrame2").load(function () {
// display iFrame2, hide iFrame1
// set timeout to load next page
});
我有一组要在 iFrame 中显示的页面(相同的域,在 iFrame 中显示没有问题)(一次只能看到 1 个 iFrame),以间隔循环30 分钟(页面显示运动结果)。
基本上,其工作方式是使用 $("#iFrame1").attr("src", "<new_url>");
设置 iFrame 1 的 src。页面完全加载后,load
函数触发并显示 iFrame1,隐藏 iFrame2。然后设置一个超时函数将下一页加载到iFrame2中,这将触发load
函数并显示iFrame2,隐藏iFrame1。这样做是为了让用户看不到页面的加载,只有在页面加载完成后 iFrame 才会可见,从而实现页面之间的平滑过渡。
一切正常!问题是其中一个页面设置为在一天中的特定时间自行重新加载 (location.reload(true);
),而我无法控制该页面。这里的问题是,该页面的重新加载也会触发该 iFrame 的 load
功能,这会导致该 iFrame 被错误地隐藏。
我的问题是,有没有办法区分 iFrame 的实际 src 变化与仅重新加载 iFrame 的内容(并且 src 保持不变)?我已经看过 document.referrer
,但什么也没给我。
我最终通过向每个 iFrame 的 load
函数添加检查来检查 iFrame 是否已经可见来解决我的问题。仅当 iFrame 当前不可见时才进行交换..
<iframe id="iFrame1" style="display: none;"></iframe>
<iframe id="iFrame2" style="display: none;"></iframe>
$("#iFrame1").load(function () {
// If iFrame 1 is hidden, show it
if($("#iFrame1").css("display") == "none")
{
// display iFrame1, hide iFrame2
// set timeout to load next page
}
});
$("#iFrame2").load(function () {
// If iFrame 2 is hidden, show it
if($("#iFrame2").css("display") == "none")
{
// display iFrame2, hide iFrame1
// set timeout to load next page
}
});