none
用JavaScript,如何在iframe里面,运行父窗口的一段代码?这段代码是不固定的。 RRS feed

  • 问题

  • 假设有一个页面A,会通过JS动态创建一个iframe对象,这个iframe会加载另外一个页面B;

    在B页面里面,有一个按钮,点了这个按钮之后,希望能够执行A页面里面的一段代码,而这段代码不是固定的,是在加载B页面的时候由开发人员自己指定的一段代码,有点类似于回调函数。

    请问这个能实现吗?


    da jia hao!
    2011年11月8日 10:01

答案

  • 可以实现

    父窗口:    <script type="text/javascript" language="javascript">
                  
            //var str="父页面对象";
            var obj=new Object();
            obj.str="1111111111111";
            obj.messagebox=function(A){
                alert(A);
            }
            MyAlert=function(){
                alert('ok');
            }
        </script>

    子窗口:

        <script type="text/javascript" language="javascript">
            function UpdateParent(){  
                var _parentWin = window.parent ;  
                _parentWin.form1.username.value = "xxxx" ;  
            }
     //获取父页面中全局变量
     var parentVairous = window.parent.window.obj;
            function childInvokeParent(){
                alert(parentVairous.str);     
            }
            function childInvokeParentMethod(){
                parentVairous.messagebox('22222');
            }   
        </script>

    2011年11月9日 5:06

全部回复

  • 可以实现

    父窗口:    <script type="text/javascript" language="javascript">
                  
            //var str="父页面对象";
            var obj=new Object();
            obj.str="1111111111111";
            obj.messagebox=function(A){
                alert(A);
            }
            MyAlert=function(){
                alert('ok');
            }
        </script>

    子窗口:

        <script type="text/javascript" language="javascript">
            function UpdateParent(){  
                var _parentWin = window.parent ;  
                _parentWin.form1.username.value = "xxxx" ;  
            }
     //获取父页面中全局变量
     var parentVairous = window.parent.window.obj;
            function childInvokeParent(){
                alert(parentVairous.str);     
            }
            function childInvokeParentMethod(){
                parentVairous.messagebox('22222');
            }   
        </script>

    2011年11月9日 5:06
  • window.parent.父页面的方法名就可以执行方法了。

    window.parent.对象名就可以访问到对象了。


    【孟子E章】
    2011年11月10日 0:51
    版主
  • window.parent.父页面的方法名就可以执行方法了。

    window.parent.对象名就可以访问到对象了。


    【孟子E章】


    都说了要执行什么方法不是固定的,而且是可以由开发人员自己随意指定一段代码的。具体一点:

    1、调用iframe之前,指定一个方法,这个方法是在当前页面里面的,并且是在调用的时候才指定,并不是一个固定的方法;

    2、在iframe里面,点击“确定”按钮要执行这个指定的方法,目的是要实现一个网页对话框的功能。

    所以就不能简单地调用window.parent.方法名

    这个有点类似于回调函数。

    chijian li”的方法虽然不是很优美,但是却能够解决问题啊。不知道还有没有更好的方法?

     

    注:我这样做的目的,主要是为了能够在平板电脑上实现一个通用的网页对话框程序,因为在平板电脑上,所有浏览器都不支持showModalDialog方法。


    da jia hao!
    2011年11月19日 12:03