2

我尝试了很多次和很多方法来从内部调用该方法,iframe但尚未成功。请看下面,

  1. main.html :由两个 iframe 组成

  2. iframe-1 与 index.html 链接,我想从中调用 main.html 的方法或想更改第二个 iframe 的 src。

main.html

<html> 
    <head> </head>
    <body>
     <iframe id="iframe-1" src="index.html"></iframe>
     <iframe id="iframe-2" ></iframe>
    </body>
</html>

索引.html

<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()不行

@EDIT:在 IE 和 MOZILLA 上成功,但在 Chrome 上出现错误(无法调用未定义的方法 'getElementById')

4

3 回答 3

1

你应该尝试

document.getElementById("iframe-1").contentWindow.func();

或者

var $f = $("#myIFrame");
var fd = $f[0].document || $f[0].contentWindow.document; // document of iframe
fd.MyFunction();  // run function

文档

于 2013-07-12T10:13:06.397 回答
1

索引.html

<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 中创建一个方法并使用:window.parent 访问它。方法名();

罗恩。

附言。window.parent。方法名();当我在 main.html 中有一个方法时,对我来说非常适合

main.html

<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>
于 2013-07-12T10:18:20.447 回答
1

我保持简短。

正如您期待同一文档上的 iframe/框架[窗口共享]。要访问另一个文档中的一个文档中定义的变量。您必须按照 DOM 2 使用 document.importNode(original Node as in other document,boolean) 方法。对 javacript 代码执行类似的操作...

iframe=document.getElementsTagName("iframe")[0];

文档I(此处存在的原始变量/节点)-

OriginalNode=iframe.contentWindow.document.getElementsByTagName(//Tag name of Node//)

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

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

于 2013-07-12T10:18:43.557 回答