在a页面把当前窗口作为第二个参数
window.showModelessDialog("b.htm",window,"..")在b页面,这样调用
window.dialogArguments.location.href = "....";
window.dialogArguments.document....

解决方案 »

  1.   

    <HEAD>
    <HTML>
    <HEAD>
    <TITLE>showModelessDialogEX.htm</TITLE>
    <SCRIPT>
    var sUserName="";
    /*------------------------------------------------------------
    Supplying the window object as a parameter allows for declaring the global
    variable, sUserName, and using it to return information from the modeless
    dialog box.
    ------------------------------------------------------------- */
    function fnCallDialog()
    {
    showModelessDialog("myDialog.htm",window,"status:false;dialogWidth:300px;dialogHeight:300px");
    }
    /*-------------------------------------------------------------
    The fnUpdate function takes the value passed into sUserName in myDialog.htm
    to update the span text on this page. This function is called in both
    fnGetInfo and fnCancel functions in myDialog.htm.
    -------------------------------------------------------------*/
    function fnUpdate()
    {
    oName.innerText = sUserName;
    }
    </SCRIPT>
    </HEAD>
    <BODY>
    <P>Enter your first name: <SPAN ID="oName"
    STYLE="color:red;font-size:24">Joan</SPAN></P> <INPUT TYPE="button"
    VALUE="Display Modeless Dialog" onclick="fnCallDialog()">
    </BODY>
    </HTML>Here is the code for "myDialog.htm".HideExample<HTML>
    <HEAD>
    <TITLE>myDialog.htm</TITLE>
    <SCRIPT>
    /* -------------------------------------------------------------
    This function makes use of the dialogArguments property of the
    window object. dialogArguments allows the global variable sUserName
    to feed the value supplied to the input in this dialog box back to
    the window that called it.
    ---------------------------------------------------------------- */
    function fnGetInfo()
    {
    var sData = dialogArguments;
    sData.sUserName = oEnterName.value;
    sData.fnUpdate();
    }
    /* -------------------------------------------------------------
    This function cleans up in case the user has clicked the
    Apply button before canceling.
    ---------------------------------------------------------------- */
    function fnCancel()
    {
    var sData = dialogArguments;
    sData.sUserName = "Joan";
    sData.fnUpdate();
    }
    </SCRIPT>
    </HEAD>
    <BODY>
    <LABEL FOR="oEnterName" ACCESSKEY="f">Enter your
    <SPAN STYLE="text-decoration:underline">F</SPAN>irst Name</LABEL>
    <INPUT ID=oEnterName><BR><BR>
    <INPUT VALUE="Apply" TYPE=button onclick="fnGetInfo();">
    <INPUT VALUE="Ok" TYPE=button onclick="fnGetInfo();window.close();">
    <INPUT VALUE="Cancel" TYPE=button onclick="fnCancel();window.close();">
    </BODY>
    </HTML>