这里有很多文章,人们试图从 iFrame 中找到父 URL。
我不想那样做,我只是想用 Javascript 知道当前页面的 URL。
出于某种原因,这似乎很困难,但我看不出为什么!
所以,要彻底解释清楚。
我的父页面 HTML 看起来像
<html>
<body>
<iframe id="mainWindow" name="mainWindow" src="myMainPage.aspx" style="border: 0; position:fixed; top:0; left:0; right:0; bottom:0; width:100%; height:100%"></iframe>
<iframe src="myOtherPage.aspx"></iframe>
</body>
</html>
笔记; 顶部style
框架的 使其填满屏幕。这很重要,因为我使用 iFrames 的唯一原因是第二个框架可用于通过 Javascript 计时器运行几个伪后台任务,因为我无法使用服务器控制的后台任务(长话短说)。
所以,虽然我们在这里有框架,但我实际上并没有使用框架来创建框架布局,而是确保当用户在我的应用程序上运行时主页面保持静态(这是一个后端 CMS 系统,而不是实时面向客户的网站)
所以,基本上,除了我的后台服务功能之外的所有内容都是从主 iFrame 本身执行的,父页面永远不会真正重新加载,隐藏框架只是根据需要执行操作,但确保它不会被页面卸载中断。
有时,我需要知道主窗口中存在的页面的 URL。
我真的不明白为什么
window.location.pathname
不起作用,但这给了我父窗口的 URL。(www.mysite.com/myParent.aspx)
document.URL
还返回父 URL
document.getElementById("mainWindow").contentWindow.location.href
不起作用,因为 iFrame 中不存在该元素,因为它存在于父级中。
我需要的是从 iFrame 本身加载到 iFrame 中的页面的当前 URL。所以,很简单
What is the URL of the page on which this javascript is loaded
这是因为我在 MasterPage 上加载脚本,这些脚本在不同页面上做的事情略有不同。