子 iframe 找不到父级

Posted

技术标签:

【中文标题】子 iframe 找不到父级【英文标题】:Child iframe doesn't find parent 【发布时间】:2014-08-08 12:43:58 【问题描述】:

我已经在 *** 上看到了很多关于这个主题的问题,但没有任何帮助。

我有一个简单的情况:

父页面:

<!DOCTYPE html>
<html>
<head>
    <title>title</title>
</head>
<body>
    <script type="text/javascript">
        var global = 'I am global variable';
    </script>
    <iframe name="main" src="main.php"></iframe>
</body>
</html>

所以...子 iframe 页面

<!DOCTYPE html>
<html>
<head>
    <title>iframe window</title>
</head>
<body>
    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
    tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
    quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
    consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
    cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
    proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
    <script type="text/javascript">
        var local = 'i am local variable';
    </script>
</body>
</html>

你看,没什么难的。

如果我在 index.php(父级)中找到子 iframe - 它返回子级的窗口对象(在控制台中),一切都很好。

但是,如果我想使用任何下一个命令找到父级:

window.frames.parent

window.frames.top

或寻找变量

window.frames.parent.global

它返回同一页面的对象窗口,但不返回父级。

它在 WAMP 中工作,具有简单的结构,包含 index.php 和 main.php。有什么想法吗?

【问题讨论】:

【参考方案1】:

试试这个:

alert(parent.global); // inside main.php(child) file

【讨论】:

对不起,伙计...但它不起作用,这就是为什么这是一个奇怪的问题。

以上是关于子 iframe 找不到父级的主要内容,如果未能解决你的问题,请参考以下文章

关于jquery方面的知识点

在 Android Studio 中找不到“填充父级”[重复]

解决找不到iframe的问题

将 .eslintrc 重新定位到父级后,ESLint 找不到配置“prettier/@typescript-eslint”

java.lang.IllegalArgumentException:从给定视图中找不到合适的父级。请提供有效的观点

使用量角器切换到 iframe 后找不到使用定位器错误的元素