В Chrome невозможно получить доступ к каким-либо переменным или функциям дочернего iframe или родительского iframe - PullRequest
1 голос
/ 12 апреля 2011

Это похоже на этот вопрос , хотя и немного шире.

Я просто открываю эти страницы локально, и они находятся в одной папке.

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>

Кажется, мне вообще не удается добиться какой-либо связи между страницей и ее содержимым iframe в chrome.Я прочитал ответы на вопрос, на который я ссылался, но я действительно не знаю, каковы пользовательские скрипты / скрипты контента, поэтому я не знаю, насколько эти вопросы важны для меня.

Я предполагаю, что на самом делеВопрос в том, как, черт возьми, я могу получить значения со страницы iframe на родительскую страницу!?

1 Ответ

1 голос
/ 12 мая 2011

Очевидно, что межкадровая связь javascript не работает в локальной файловой системе.Поместите файлы на сервер, и он, скорее всего, будет работать как положено.

...