<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 495,comments - 227,trackbacks - 0
    ?? 在b\s系統中,用戶經常需要打開子窗口選中某些項目,并將這些項目插入到父窗口的下拉選框中。本來以為在IE中實現這樣子窗口操作父窗口的功能十分簡單,但是按常規的做法卻是行不通的。在google上搜索了一陣也沒有好的解決方案。最后看到國外的一個網頁上有以下內容:

    Explorer 5.0 problems

    When it comes to dynamically generating options and selects, Explorer 5.0 on Windows has quite a few problems:

    1. Generating options in another frame or window doesn't work. Put the script in the page that contains the select. I have heard, but did not test, that this problem still exists in Explorer 6.0
    2. Generating selects and options through the 'pure' W3C DOM (ie. with any document.createElement()) crashes Explorer 5.0 . Solved in 5.5
      Generate these selects and options through innerHTML instead.
    3. Generating options from a popup window may crash any Explorer Windows.

    I have heard, but did not test, that the script below works fine in IE 5.0:

    var?doc?=?select.ownerDocument;
    if?(!doc)
    ????doc?
    =?select.document;
    var?opt?=?doc.createElement('OPTION');
    opt.value?
    =?value;
    opt.text?
    =?text;
    select.options.add(opt,?index);

    ??? 最后得到了啟發,從而實現了這個功能,下面所有可能用到的實現方法的代碼。但是在這些代碼中有些方法是不可行的。最后有一個表格說明了哪些方法不可行,理由是什么?

    HTMLPage.htm

    <!DOCTYPE?html?PUBLIC?"-//W3C//DTD?XHTML?1.0?Transitional//EN"?"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html?xmlns="http://www.w3.org/1999/xhtml"?>
    <head>
    ????
    <title>1st</title>
    ????
    <script?language="javascript">
    ????
    function?AddOpt(text,val)
    ????
    {
    ????????
    var?slct?=?document.getElementById("Select1");
    ????????
    var?op?=?new?Option(text,val);
    ????????slct.add(op);
    ????}

    ????
    </script>
    </head>
    <body>
    <form?id="form1"?name="form1">
    ????
    <select?id="Select1"?multiple="multiple">
    ????????
    <option?selected="selected"?value="1">1</option>
    ????????
    <option?value="2">2</option>
    ????????
    <option?value="3">3</option>
    ????????
    <option?value="4">4</option>
    ????
    </select>
    ????
    <br?/>
    ????
    <input?id="showModalDialogWithoutArg"?type="button"?value="showModalDialogWithoutArg"?onclick="window.showModalDialog('HTMLPage2.htm');"/>
    ????
    <br?/>
    ????
    <input?id="showModalDialogWithArg"?type="button"?value="showModalDialogWithArg"?onclick="window.showModalDialog('HTMLPage2.htm',?window);"/>
    ????
    <br?/>
    ????
    <input?id="showModelessDialogWithoutArg"?type="button"?value="showModelessDialogWithoutArg"?onclick="window.showModelessDialog('HTMLPage2.htm');"/>
    ????
    <br?/>
    ????
    <input?id="showModelessDialogWithArg"?type="button"?value="showModalDialogWithArg"?onclick="window.showModelessDialog('HTMLPage2.htm',?window);"/>
    ????
    <br?/>
    ????
    <input?id="open"?type="button"?value="open"?onclick="window.open('HTMLPage2.htm');"/>
    </form>
    </body>
    </html>

    ?HTMLPage2.htm

    <!DOCTYPE?html?PUBLIC?"-//W3C//DTD?XHTML?1.0?Transitional//EN"?"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html?xmlns="http://www.w3.org/1999/xhtml"?>
    <head>
    ????
    <title>2nd</title>
    ????
    <script?language="javascript">
    ????
    function?InsertToParent()
    ????
    {
    ????????
    var?slct?=?window.parent.document.getElementById("Select1");
    ????????
    ????????doc?
    =?slct.ownerDocument;
    ????????
    var?opt?=?doc.createElement('OPTION');
    ????????opt.value?
    =?"2nd?窗口";
    ????????opt.text?
    =?"2nd?窗口";
    ????????slct.options.add(opt);
    ????}

    ????
    ????
    function?InsertToOpener()
    ????
    {
    ????????
    var?slct?=?window.opener.document.getElementById("Select1");
    ????????
    ????????doc?
    =?slct.ownerDocument;
    ????????
    var?opt?=?doc.createElement('OPTION');
    ????????opt.value?
    =?"2nd?窗口";
    ????????opt.text?
    =?"2nd?窗口";
    ????????slct.options.add(opt);
    ????}

    ????
    ????
    function?InsertToTop()
    ????
    {
    ????????
    var?slct?=?window.top.document.getElementById("Select1");
    ????????
    ????????doc?
    =?slct.ownerDocument;
    ????????
    var?opt?=?doc.createElement('OPTION');
    ????????opt.value?
    =?"2nd?窗口";
    ????????opt.text?
    =?"2nd?窗口";
    ????????slct.options.add(opt);
    ????}

    ????
    ????
    function?InsertByParentFun()
    ????
    {
    ????????
    var?wnd?=?window.parent;
    ????????wnd.AddOpt(
    "2nd?窗口","2nd?窗口");
    ????}

    ????
    ????
    function?InsertByOpenerFun()
    ????
    {
    ????????
    var?wnd?=?window.opener;
    ????????wnd.AddOpt(
    "2nd?窗口","2nd?窗口");
    ????}

    ????
    ????
    function?InsertByTopFun()
    ????
    {???????
    ????????
    var?wnd?=?window.top;
    ????????wnd.AddOpt(
    "2nd?窗口","2nd?窗口");
    ????}

    ????
    ????
    function?InsertByArgFun()
    ????
    {
    ????????
    var?wnd?=?window.dialogArguments;
    ????????wnd.AddOpt(
    "2nd?窗口","2nd?窗口");
    ????}

    ????
    ????
    function?InsertWithArg()
    ????
    {
    ????????
    var?wnd?=?window.dialogArguments;
    ????????
    var?doc?=?wnd.document;
    ????????
    var?slct?=?doc.getElementById("Select1");
    ????????
    ????????doc?
    =?slct.ownerDocument;
    ????????
    var?opt?=?doc.createElement('OPTION');
    ????????opt.value?
    =?"2nd?窗口";
    ????????opt.text?
    =?"2nd?窗口";
    ????????slct.options.add(opt);
    ????}

    ????
    </script>
    </head>
    <body>
    ????
    <input?id="InsertToParent"?type="button"?value="InsertToParent"?onclick="InsertToParent()"?/>
    ????
    <br?/>
    ????
    <input?id="InsertToOpener"?type="button"?value="InsertToOpener"?onclick="InsertToOpener()"?/>
    ????
    <br?/>
    ????
    <input?id="InsertToTop"?type="button"?value="InsertToTop"?onclick="InsertToTop()"?/>
    ????
    <br?/>
    ????
    <input?id="InsertByParentFun"?type="button"?value="InsertByParentFun"?onclick="InsertByParentFun()"?/>
    ????
    <br?/>
    ????
    <input?id="InsertByOpenerFun"?type="button"?value="InsertByOpenerFun"?onclick="InsertByOpenerFun()"?/>
    ????
    <br?/>
    ????
    <input?id="InsertByTopFun"?type="button"?value="InsertByTopFun"?onclick="InsertByTopFun()"?/>
    ????
    <br?/>
    ????
    <input?id="InsertByArgFun"?type="button"?value="InsertByArgFun"?onclick="InsertByArgFun()"?/>
    ????
    <br?/>
    ????
    <input?id="InsertWithArg"?type="button"?value="InsertWithArg"?onclick="InsertWithArg()"?/>
    </body>
    </html>

    ?

    方法表格

    showModalDialogWithoutArg

    InsertToParent

    不能實現

    子窗口parent屬性為子窗口自身

    InsertToOpener

    不能實現

    子窗口opener屬性為空

    InsertToTop

    不能實現

    子窗口top屬性為子窗口自身

    InsertByParentFun

    不能實現

    子窗口parent屬性為子窗口自身

    InsertByOpenerFun

    不能實現

    子窗口opener屬性為空

    InsertByTopFun

    不能實現

    子窗口top屬性為子窗口自身

    InsertByArgFun

    不能實現

    沒有傳送參數給子窗口

    InsertWithArg

    不能實現

    沒有傳送參數給子窗口

    showModalDialogWithArg

    InsertToParent

    不能實現

    子窗口parent屬性為子窗口自身

    InsertToOpener

    不能實現

    子窗口opener屬性為空

    InsertToTop

    不能實現

    子窗口top屬性為子窗口自身

    InsertByParentFun

    不能實現

    子窗口parent屬性為子窗口自身

    InsertByOpenerFun

    不能實現

    子窗口opener屬性為空

    InsertByTopFun

    不能實現

    子窗口top屬性為子窗口自身

    InsertByArgFun

    可以實現

    ?

    InsertWithArg

    可以實現

    ?

    showModelessDialogWithoutArg

    InsertToParent

    不能實現

    子窗口parent屬性為子窗口自身

    InsertToOpener

    不能實現

    子窗口opener屬性為空

    InsertToTop

    不能實現

    子窗口top屬性為子窗口自身

    InsertByParentFun

    不能實現

    子窗口parent屬性為子窗口自身

    InsertByOpenerFun

    不能實現

    子窗口opener屬性為空

    InsertByTopFun

    不能實現

    子窗口top屬性為子窗口自身

    InsertByArgFun

    不能實現

    沒有傳送參數給子窗口

    InsertWithArg

    不能實現

    沒有傳送參數給子窗口

    showModelessDialogWithArg

    InsertToParent

    不能實現

    子窗口parent屬性為子窗口自身

    InsertToOpener

    不能實現

    子窗口opener屬性為空

    InsertToTop

    不能實現

    子窗口top屬性為子窗口自身

    InsertByParentFun

    不能實現

    子窗口parent屬性為子窗口自身

    InsertByOpenerFun

    不能實現

    子窗口opener屬性為空

    InsertByTopFun

    不能實現

    子窗口top屬性為子窗口自身

    InsertByArgFun

    可以實現

    ?

    InsertWithArg

    可以實現

    ?

    open

    InsertToParent

    不能實現

    子窗口parent屬性為子窗口自身

    InsertToOpener

    可以實現

    ?

    InsertToTop

    不能實現

    子窗口top屬性為子窗口自身

    InsertByParentFun

    不能實現

    子窗口parent屬性為子窗口自身

    InsertByOpenerFun

    可以實現

    ?

    InsertByTopFun

    不能實現

    子窗口top屬性為子窗口自身

    InsertByArgFun

    不能實現

    open方法不能在窗口間傳遞參數

    InsertWithArg

    不能實現

    open方法不能在窗口間傳遞參數



    Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1089313

    posted on 2006-09-07 12:39 SIMONE 閱讀(617) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲?V无码成人精品区日韩| 国产成人不卡亚洲精品91| 亚洲欧洲日本精品| 免费大黄网站在线看| 免免费国产AAAAA片| 最好免费观看高清在线| 无码免费又爽又高潮喷水的视频| 亚洲黄色激情视频| 久久久无码精品亚洲日韩按摩| 亚洲人成色77777在线观看大| 免费看美女让人桶尿口| 中文字幕乱码免费视频| 国产成人AV片无码免费| 久久精品国产亚洲AV久| 四虎AV永久在线精品免费观看| 91青青青国产在观免费影视| 国产成人无码区免费内射一片色欲 | 啊灬啊灬别停啊灬用力啊免费看| 久久受www免费人成_看片中文| 一个人免费日韩不卡视频| 中文字幕不卡高清免费| 成人免费观看男女羞羞视频| 成人婷婷网色偷偷亚洲男人的天堂| 亚洲第一页在线播放| 国产成人免费一区二区三区| 99在线视频免费观看| ww在线观视频免费观看w| 美女羞羞视频免费网站| 色偷偷亚洲男人天堂| 亚洲av成本人无码网站| 亚洲激情中文字幕| 亚洲AV无码一区东京热久久| 亚洲国产精品无码久久SM| 永久免费AV无码网站在线观看| 国产片AV片永久免费观看| 1a级毛片免费观看| 美女被cao免费看在线看网站| 无码人妻久久一区二区三区免费丨| 91成人免费在线视频| 最近中文字幕无吗免费高清| 欧美大尺寸SUV免费|