如何检测当前的iframe网址?

Ind*_*eti 6 html javascript iframe jquery

我写了一个html代码,用另一个网站初始化我的iframe.

我的域名是例如:

www.mydomain.com/Index.html

在这里有一个

 <iframe src = "www.anotherdomain.com/pages/firstPage.html"/>
Run Code Online (Sandbox Code Playgroud)

我想在iframe获取新的时检测完整的新src url.iframe文本包含指向初始化页面中其他页面的链接.完成它是否可行且合法?谢谢.任何帮助表示赞赏.

我想这是跨越原始问题,但有一个解决方案吗?

更新

我试图得到答案

 document.getElementById("myIframeId").src
Run Code Online (Sandbox Code Playgroud)

在帧加载事件.但它一直显示初始化的src.它没有显示更新的src.

document.getElementById("myIframeId").contentWindow.location.href
Run Code Online (Sandbox Code Playgroud)

给出了http帧试图在iframe中访问https的安全错误.协议不匹配.

我将localhost设置为SSL并使用https,但请求被阻止.我不知道为什么.

Cha*_*lie 3

我不同意建议您应该使用“src”来检测 iframe 的当前 url 的答案。它只是不给你当前的 url - 而是它开头的 url。

域名必须来自同源才能使用以下代码的方法:

$(document).ready(function() {
  $('#myframe').load(function() {
    alert($(this).get(0).contentWindow.location.href);
  }); 
});
Run Code Online (Sandbox Code Playgroud)

如果域来自不同的来源 - 但您可以访问这两个域(或者两个域都是您的),那么您可以使用iFrame 的window.postMessage函数和contentWindow属性来发送数据,以便父级在加载新页面时显示。

这是有关该内容的教程:http://javascript.info/tutorial/cross-window-messaging-with-postmessage

如果 iFrame 中的域完全陌生,我能想到的一种方法是在服务器端脚本中加载该域,并让它用更改的链接呈现此数据。现在,您可以在 iFrame 内调用此脚本,并contentWindow.location.href在加载时使用属性。