首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何访问Iframe [Chrome浏览器]的父窗口方法

如何访问Iframe [Chrome浏览器]的父窗口方法
EN

Stack Overflow用户
提问于 2013-07-12 10:10:25
回答 3查看 6.7K关注 0票数 2

我尝试了很多次和许多方法从iframe内部调用该方法,但还没有成功。请看下面,

  1. 由两个iframe组成的main.html :
  2. 如果使用index.html链接到iframe-1,我想从这里调用main.html方法或更改第二个iframe的src。

main.html

代码语言:javascript
复制
<html> 
    <head> </head>
    <body>
     <iframe id="iframe-1" src="index.html"></iframe>
     <iframe id="iframe-2" ></iframe>
    </body>
</html>

index.html

代码语言:javascript
复制
<html> <head> 
<script type="text/javascript">
 $(document).ready(function(){
    // How to access the method of main.html and change the iframe src
 });
</script>
</head> <body>
    ......
</body> </html>

注意:尝试过parent.methodName()window.parent.methodName()不工作

@编辑:在IE和MOZILLA上成功,但在Chrome上出现错误(不能调用未定义的getElementById方法)

EN

回答 3

Stack Overflow用户

发布于 2013-07-12 10:13:06

你应该试试

代码语言:javascript
复制
document.getElementById("iframe-1").contentWindow.func();

代码语言:javascript
复制
var $f = $("#myIFrame");
var fd = $f[0].document || $f[0].contentWindow.document; // document of iframe
fd.MyFunction();  // run function

文档

票数 1
EN

Stack Overflow用户

发布于 2013-07-12 10:18:20

index.html

代码语言:javascript
复制
<html>
<head> 
    <script type="text/javascript">
        function run() {
            window.parent.document.getElementById("iframe-2").src = "/test.html";
        }
    </script>
</head>
<body onload="run();">
</body>
</html>

这个怎么样?

或者在main.html中创建一个方法并使用:main.html访问它:

罗恩。

ps。当我在window.parent.methodname();中有一个方法时,main.html非常适合我。

main.html

代码语言:javascript
复制
<html> 
    <head> </head>
    <script>
        function foo() {
            alert(1);
        }       
    </script>
    <body>
       <iframe id="iframe-1" src="index.html"></iframe>
       <iframe id="iframe-2" ></iframe>
    </body>
</html>
票数 1
EN

Stack Overflow用户

发布于 2013-07-12 10:18:43

我要保持这个简短。

因为您期待相同的文档窗口共享上的iframes/框架。要访问在一个文档中定义的变量,在另一个document.You中必须使用document.importNode(与其他文档一样,布尔)方法(按照DOM 2 )。

代码语言:javascript
复制
iframe=document.getElementsTagName("iframe")[0];

documentI(这里有原始变量/节点)-

代码语言:javascript
复制
OriginalNode=iframe.contentWindow.document.getElementsByTagName(//Tag name of Node//)

documentII(将在此克隆的节点)- iframe.contentWindow.document.importNode(OriginalNode,True)

节点可以通过简单的DOM方法在任何iframe中创建任何方法、属性或对象。这是可行的

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17612514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档