Javascript 如何从外部窗口在iframe中检测用户导航到的URL?
情况如下: 页面中有一个页面和一个iframe。一开始,他们都来自同一个领域(起源)。iframe可以包含指向其他域的链接(或更改window.location.href的javascript)。我想在外部框架中检测,当用户导航离开iframe中的原始域时,用用户导航到的URL替换外部页面的window.location.href,从而结束在外部框架中运行的应用程序 尝试使用beforeunload事件,但未更改内部帧的位置.href。此外,当其contentDocument更改时,iframe DOM元素的src属性不会更改Javascript 如何从外部窗口在iframe中检测用户导航到的URL?,javascript,html,dom,iframe,cross-domain,Javascript,Html,Dom,Iframe,Cross Domain,情况如下: 页面中有一个页面和一个iframe。一开始,他们都来自同一个领域(起源)。iframe可以包含指向其他域的链接(或更改window.location.href的javascript)。我想在外部框架中检测,当用户导航离开iframe中的原始域时,用用户导航到的URL替换外部页面的window.location.href,从而结束在外部框架中运行的应用程序 尝试使用beforeunload事件,但未更改内部帧的位置.href。此外,当其contentDocument更改时,iframe
我的问题在当前的浏览器实现中可以解决吗?或者您将使用什么方法来获得与所述行为最接近的行为?可能的重复?不是真的。我在第一段中提到,当iframe document.location.href从内部更改时,src属性不会更改。因此,标记为答案的“load”事件和contentDocument.location.href在iframe导航到其他域时没有解决方案。您是否控制初始iframe应用程序?是。我的脚本最初在外部框架和iframe中运行。
$(document).ready(function () {
$("#widget").load(function () {
var ifr = document.getElementById("widget")
var anchors = ifr.contentDocument.getElementsByTagName("a");
for (var i in anchors) {
anchors[i].setAttribute("onClick", "testUrl()");
}
});
});
function testUrl() {
//your code goes here for validating the URLs...
}