在Chrome中,无法访问子iframe或iframe父级的任何变量或函数

时间:2011-04-12 03:18:47

标签: javascript google-chrome iframe parent

这类似于this question,虽然有点宽泛。

我只是在本地打开这些页面,它们位于同一个文件夹中。

的index.html:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
    <head>
        <title>TestIndex</title>
        <script type="text/javascript">
            function init()
            {
                alert("child.childvar: " + child.childvar); //works in FF, IE, not Chrome
                alert("frames['child'].childvar: " + frames['child'].childvar); //works in FF, IE, not Chrome
                alert("document.getElementById('child').contentWindow['childvar']: " + document.getElementById('child').contentWindow['childvar']); //works in FF, IE, not Chrome

                child.childfunc(); //works in FF, IE, not Chrome
                frames['child'].childfunc(); //works in FF, IE, not Chrome
                document.getElementById('child').contentWindow['childfunc()']; //doesn't work in anything
            }

            var parentvar = 7;
            function parentfunc()
            {
                alert("In parentfunc");
            }
            window.onload = init;
        </script>
    </head>

    <body>
        <iframe id="child" name="child" src="child.html">Your browser does not support iframes</iframe>
    </body>
</html>

child.html:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
    <head>
        <title>TestChild</title>
        <script type="text/javascript">
            function init()
            {
                alert("parent.parentvar: " + parent.parentvar); //works in FF, IE, not Chrome

                parent.parentfunc(); //works in FF, IE, not Chrome
            }

            var childvar = 5;
            function childfunc()
            {
                alert("In childfunc");
            }
            window.onload = init;
        </script>
    </head>

<body>

</body>
</html>

我似乎无法在页面和Chrome中的iframe内容之间实现任何通信。我确实阅读了我链接的问题的答案,但我真的不知道用户脚本/内容脚本是什么,所以我不知道这些问题与我的相关程度有多大。

我想我的实际问题是:我如何从iframe页面获取值到父页面中??

1 个答案:

答案 0 :(得分:1)

显然,在本地文件系统上,javascript帧间通信不起作用。将文件放在服务器上,它可能会按预期运行。