具体情况是这样的:页面中有N(不确定几个)iframe嵌套,在其中一个iframe中使用dojo弹出widget窗口,然后在此widget窗口中输入值,在该widget窗体关闭时,将弹出widget的iframe中的一个控件的值改掉。即,关闭widget窗体刷新iframe并赋值。各位大哥大姐帮帮忙啦

解决方案 »

  1.   

    哦!补充一下,弹到最上面一层页面,要盖住所有的整个浏览器的所有页面内容。
    弹出页面代码示例: DlgUtil=function()
     {
            window.top.dojo.require("dojo.widget.Dialog");
    window.top.dojo.require("dojo.widget.FloatingPane");
            this.makePane=function (action,title,top,left,width,height,widgetId,widgetFrom)
            {
                var params = {loadingMessage:"loading.....",
                 title:title,href:action,displayCloseAction:true,toggleDuration:500,resizable:false,
                 appendInfo:widgetId, executeScripts: true,id:widgetId,from:widgetFrom};
                var size = {top:top,left:left,width:width,height:height};
                var div= window.top.document.createElement("div");
                div.style.position="absolute";
                div.innerHTML="Initial contents...";
                window.top.document.body.appendChild(div);          
                for(var s in size)
                {
                    div.style[s] = size[s];
                }            
                widget = window.top.dojo.widget.createWidget("ModalFloatingPane", params, div);
                widget.resizeTo(width,height);
                widget.show();
                return widget;
            }
     }  
     
     function showWidget()
     {
      /*var dlg0 = dojo.widget.byId("dialog0");
    var btn = document.getElementById("hider0");
    dlg0.setCloseControl(btn);
    dlg0.show();*/

    var sipServerDetailDiv =
                new DlgUtil().makePane("widget.html",
                        'hello',
                            "500px","300px","400px","250px","testid","mainFrame");
                sipServerDetailDiv.show();
                dojo.event.connect(sipServerDetailDiv,"onHide");


     }
      

  2.   

    最后选择的方案是使用dojo中的定制事件方式解决了。大家有兴趣查一下就是了