1

这里有很多文章,人们试图从 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 上加载脚本,这些脚本在不同页面上做的事情略有不同。

4

0 回答 0