熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

在ModalDialog中操作父窗口對象

2013-11-23 19:33:21  來源: Java核心技術 

  不能使用windowparent

  Windowparent是用來在frame中進行操作的在對話框中不能用來操作父窗口對象

  正確的做法

  調用modaldialog時通過傳參數的方式操作

  例

  需求

  父窗口頁面為l 子窗口頁面為ll中有文本框id為test在打開的對話框中點擊按鈕將l的文本框值改為子窗口值

  實現

  打開對話框時把test作為參數傳給子窗口在子窗口中獲取參數將參數對象(即l中傳過來的text對象)的value屬性值設置為子窗口值

  注意這裡只能傳id不能傳name

  l代碼如下

  <html>

  <head>

  <meta httpequiv=ContentType content=text/html; charset=gb>

  <title>l</title>

  </head>

  <body>

  <input type=text id=test value=>

  <input type=button value= OK onclick=windowshowModalDialog(l test)>

  </body>

  </html>

  l代碼如下

  <html>

  <head>

  <meta httpequiv=ContentType content=text/html; charset=gb>

  <title>l</title>

  <script language=javascript>

  function func(){

  //獲取父窗口傳過來的參數

  var ptextid = windowdialogArguments;

  if(ptextid != undefined){

  //將父窗口傳過來的對象的值改為子窗口值

  ptextidvalue = 子窗口值;

  //關閉子窗口

  windowclose();

  }

  }

  </script>

  </head>

  <body>

  <input type=button value= OK onclick=func()>

  </body>

  </html>

  如果需要操作的父窗口對象比較多也可以將window或windowdocument作為參數傳給子窗口

  例

  需求

  l中添加id為aform的的formform中有id為test的文本框在l中除了進行上面的操作之外還要將test的值改為子窗口值並將form提交到l

  實現

  將l中打開對話框的函數改為如下方式:

  windowshowModalDialog(l windowdocument);

  將l中func()改為如下:

  function func(){

  var pdoc = windowdialogArguments;

  if(pdoc!=undefined){

  pdocalltestvalue=子窗口值;

  pdocalltestvalue=子窗口值;

  pdocallaformaction=l;

  pdocallaformsubmit();

  }

  實現

  因為在子窗口中對父窗口進行的操作比較多也可以采用execScript的方式實現

  將l中打開對話框的函數改為如下方式:

  windowshowModalDialog(l window);

  添加javascript函數如下

  function func(){

  testvalue=子窗口值;

  documentalltestvalue=子窗口值;

  aformaction=l;

  aformsubmit();

  將l中func()改為如下:

  function func(){

  var pwin = windowdialogArguments;

  if(pwin!=undefined){

  var codeStr = func();

  pwinexecScript(codeStrjavascript);

  windowclose();

  }

  }


From:http://tw.wingwit.com/Article/program/Java/hx/201311/27093.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.