<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)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 在线观看亚洲精品福利片| 黄瓜视频影院在线观看免费| 国产yw855.c免费视频| 亚洲熟妇av午夜无码不卡| 国产1024精品视频专区免费| 91亚洲国产成人久久精品网址| 亚洲国产电影av在线网址| 久久青青草原亚洲av无码app | 亚洲avav天堂av在线网爱情| 久久久久高潮毛片免费全部播放 | 91嫩草亚洲精品| 成人AV免费网址在线观看| 亚洲欧美黑人猛交群| 四虎永久成人免费| 男女一边桶一边摸一边脱视频免费| 69精品免费视频| 亚洲久悠悠色悠在线播放| 免费看香港一级毛片| 日韩在线视频播放免费视频完整版| 少妇人妻偷人精品免费视频| 亚洲国产精品综合久久网各| 日本视频免费在线| 一级一级一片免费高清| 亚洲成人激情在线| 久九九精品免费视频| 国产亚洲精品2021自在线| 久久99国产亚洲高清观看首页| 免费看又黄又爽又猛的视频软件| 黄色网址免费观看| 色综合久久精品亚洲国产| 亚洲午夜无码久久久久| 久久午夜夜伦鲁鲁片免费无码| 亚洲精品无码AV中文字幕电影网站| 亚洲va久久久久| 亚洲精品视频免费观看| 99re6热视频精品免费观看| 中中文字幕亚洲无线码| 亚洲av无码成人精品区在线播放| 亚洲日韩一区精品射精| 亚洲午夜成人精品电影在线观看| 亚洲综合亚洲综合网成人|