javascript - 如何检测当前的iframe url?

标签 javascript jquery html iframe

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

例如我的域名是:

www.mydomain.com/Index.html

这里有一个

 <iframe src = "www.anotherdomain.com/pages/firstPage.html"/>

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

我猜它涉及跨源问题,但是否有解决此问题的方法?

更新

我试图通过

得到答案
 document.getElementById("myIframeId").src

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

document.getElementById("myIframeId").contentWindow.location.href

给出了一个 http 框架试图访问 iframe 中的 https 的安全错误。协议(protocol)不匹配。

我将本地主机设置为 SSL 并使用了 https,但请求被阻止了。我不知道为什么。

最佳答案

我不同意建议您应该使用“src”来检测 iframe 的当前 url 的答案。它根本不会给你当前的 url - 但它开始的 url。

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

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

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

这里有一个教程:http://javascript.info/tutorial/cross-window-messaging-with-postmessage

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

关于javascript - 如何检测当前的iframe url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32919685/

相关文章:

javascript - 如何让 jquery 堆栈/协同工作

php - 如何制作具有相同设计的网页

javascript - ASP.NET 中的字符计数

javascript - 为什么 Object.prototype.toString.call(arr) 返回 [object Object] 而不是 [object Array]?

javascript - 选中时从数组中删除值

javascript - 使用 jQuery 的 debounce 判断用户是否停止滚动

javascript - window.addEventListener ("load"中的 Javascript 函数,function() 未定义 - 为什么?

javascript - Material 输入标签无法正常工作?

javascript - 如何分析/减少 html 页面渲染时间?

html - 在具有绝对定位的 FF 上打印问题