如何检查浏览器中的url是不是已被iframe更改

Posted

技术标签:

【中文标题】如何检查浏览器中的url是不是已被iframe更改【英文标题】:How to check if url in browser has changed by iframe如何检查浏览器中的url是否已被iframe更改 【发布时间】:2020-07-27 14:32:27 【问题描述】:

我有一个 iframe(托管在其他地方),点击 iframe 内的按钮后,它会在浏览器中更改我的网址。

在浏览器中,网址将从https://www.siteurl.com/#/login 变为https://www.siteurl.com/#/account

我试过了:

if (window.location.toString().includes("account"))
alert("url contains account");

但这只有在您直接访问https://www.siteurl.com/#/account 时才有效。

然后我想到了.on("load")函数

$(function()
$(window).on("load", function()
 if (window.location.toString().includes("account"))
 alert("url contains account");
 
);
);

但这根本不起作用。 由于跨域,访问 iframe 也很痛苦。我无法控制 iframe(CSS 除外),所以这可能是一个死胡同。

【问题讨论】:

【参考方案1】:

如果你想要的只是 iframe 显示的当前 URL,那么这应该允许你访问它:

document.getElementById('ID_of_your_iframe').contentWindow.location.href

浏览器的当前URL原则上可以在

下访问
window.location.href

如果这些都不起作用,您可能需要跳出 iFrame - 参见例如link

【讨论】:

改变的不是 iframe SRC。它是浏览器本身的 URL。 iframe 中#document 的内容确实发生了变化 无论我做什么,它都不会检查 url 是否更改。也试过这个if (window.location.href.indexOf("account") != -1) 它只有在你直接访问siteurl.com/#/account 时才有效

以上是关于如何检查浏览器中的url是不是已被iframe更改的主要内容,如果未能解决你的问题,请参考以下文章

如何检查您的网站是不是已在 iframe 中加载并获取父 URL? [复制]

检测 iframe 内 SPA(单页应用程序)的 URL 更改

如何检查 iframe 是不是已加载或是不是有内容?

MVC 3.0错误 HTTP 404您正在查找的资源(或者它的一个依赖项)可能已被移除,或其名称已更改,或暂时不可用。请检查以下 URL 并确保其拼写正确。

检查是不是点击了 FB 页面插件/iFrame?

如何检测 JavaScript 中的哈希后 URL 是不是已更改