我可以在iframe中调用父函数,但不能更改父变量

时间:2016-09-02 06:14:04

标签: javascript html iframe

我有一个inside.html

<!doctype html>
<html lang="en">
    <head>
        <meta charset="utf-8"/>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
    </head>  
    <body>
        <button id="mybutton">Click</button>
    </body>
    <script>
        $(document).ready(function() {
            parent.changeName("init");
        });

        $("#mybutton").click(function(e) {
            parent.changeName("changed");
        })
    </script>
</html>

它由来自iframe的{​​{1}}加载:

outside.html

现在,当我加载页面或点击<!doctype html> <html lang="en"> <head> <meta charset="utf-8"/> </head> <body> <iframe src="inside.html" style="overflow: scroll; position: absolute; width: 100%; height: 100%; border: none;"> </iframe> </body> <script> var name = ""; function changeName(arg) { name = arg; alert(arg); } </script> </html> 按钮时,系统会调用inside.html中的changeName功能,因为会显示警告框。但是,变量outside.html未更改(我从控制台中获取)。我不知道为什么。

两个文件都在同一个域中,因此没有跨域问题。

如果您不介意,可以查看实时页面:

outside.html on my server

谢谢!

0 个答案:

没有答案