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

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

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

    ice world

    There is nothing too difficult if you put your heart into it.
    posts - 104, comments - 103, trackbacks - 0, articles - 0

    關于在IE下對Select標簽設置innerHTML無效的問題

    Posted on 2011-04-16 02:01 IceWee 閱讀(400) 評論(0)  編輯  收藏 所屬分類: Javascript
    今天在做應用的時候有個級聯菜單的功能,因為一般做開發的時候都是使用FireFox居多(原因不用多說,相信所有的前端開發人員都曾經嘗到了惡心的IE不遵守W3C標準的痛苦),因此想當然的時候對一個Select標簽進行了如下操作: selectObj.innerHTML = '<option value="value">something</option>'

    寫完之后興沖沖在FireFox下測試了一下功能,沒問題,覺得OK!     第二天有個同事在測試的時候發現在IE下選什么都沒有用,出不來子菜單,告訴我之后,著實把我郁悶了一番。在IE6下看了一把,貌似也沒有報什么腳本錯誤,但就是innerHtML沒有設置成功,因為之前沒有遇到過這個問題,調了很久都沒有找到原因。后來有IE Develop Toolbar看了一下生成之后的HTML結構,發現IE根本沒有按照我規定的格式去渲染select標簽,趕緊在Google上搜了一把,發現這是IE 的一個BUG,微軟的BUG申明中注明了兩種解決方案: 1. 如果您必須使用 innerHTML ,一種替代方法是使用一個 div 對象封裝 SELECT 元素和然后設置 div 對象的 innerHTML 屬性。 例如:

    <html>
    <head>
    <title>My Example</title>
    <script type="text/javascript">
    <!--
        
    var origDivHTML;
        
    function init() {    
            origDivHTML 
    = myDiv.innerHTML;
        }

        
        
    function setValues() {    
            
    var oldinnerHTML = "your original innerHTML: " + yourDiv.innerHTML;    
            alert(oldinnerHTML);    
            yourDiv.innerHTML 
    = origDivHTML;    
            
    var curinnerHTML = "your current innerHTML: " + yourDiv.innerHTML;    
            alert(curinnerHTML);}

    //-->
    </script>
    </head>
    <body onload="init()">
    <div id="myDiv">
        
    <select name="firstSelect" size="1">
            
    <option>11111</option>
            
    <option>22222</option>
            
    <option>33333</option>
        
    </select>
    </div>
    <div id="yourDiv">
        
    <select name="secondSelect" size="1">
            
    <option>aaaa</option>
            
    <option>bbbb</option>
            
    <option>cccc</option>
        
    </select>
    </div>
    <button onclick="setValues();">click me to set the values</button>
    </body>
    </html>

     

    2. 理想情況下,應使用 選項(Option) 集合添加為 SELECT 元素的選項。 下面的代碼顯示用編程方式將選項添加到 SELECT 元素的三種方法。例如:

    <html>
    <head>
    <title>Example</title>
    <script type="text/javascript">
    <!--
        
    function fill_select1() {    
            
    for ( var i = 0; i < 100; i++{        
                select1.options[i] 
    = new Option(i, i);    
            }

        }

        
        
    function fill_select2() {    
            
    var sOpts = "<select>";    
            
    for ( var i = 0; i < 100; i++{        
                sOpts 
    += '<option value="' + i + '">+ i + '</option>';    
            }
        
            select2.outerHTML 
    = sOpts + "</option>";
        }

        
        
    function fill_select3() {    
            
    for ( var i = 0; i < 100; i++{        
                
    var oOption = document.createElement("OPTION");        
                oOption.text 
    = "Option: " + i;        
                oOption.value 
    = i;        
                document.all.select3.add(oOption)    
            }

        }

    //-->
    </script>
    </head>
    <body>
        
    <h2>SELECT Box Population</h2>
        
    <select id=select1 name=select1></select>
        
    <input type="button" value="Populate with options list" id="button1" name="button1" onclick="fill_select1();">
        
    <br /><br />
        
    <select id="select2" name="select2"></select>
        
    <INPUT type="button" value="Populate with outerHTML" id="button2" name="button2" onclick="fill_select2();">
        
    <br /><br />
        
    <select id="select3" name="select3"></select>
        
    <input type="button" value="Populate with using createElement" id="button3" name="button3" onclick="fill_select3();">
    </body>
    </html>



    雖然這個BUG在GOOGLE上已經有不少人發表了看法,我還是覺得應該自己去寫下來,總結加深印象,希望能給有需要的朋友提供幫助,少走一些彎路。

    本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/grubbyfan/archive/2009/01/09/3743344.aspx

    主站蜘蛛池模板: 成年美女黄网站色大免费视频| 玖玖在线免费视频| 免费高清在线影片一区| 亚洲制服丝袜在线播放| 无码国产精品一区二区免费 | 国产AV日韩A∨亚洲AV电影| 日本成人在线免费观看 | 高潮毛片无遮挡高清免费视频| 国产又黄又爽又猛的免费视频播放| 亚洲hairy多毛pics大全| 日韩免费无砖专区2020狼| 男女超爽视频免费播放| 亚洲情a成黄在线观看| 久久久免费观成人影院| 久久亚洲高清观看| 在线免费观看国产| 国产成+人+综合+亚洲专| 免费看美女让人桶尿口| 白白色免费在线视频| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 亚洲国产精品美女久久久久| 国产高清在线免费视频| rh男男车车的车车免费网站 | 亚洲精品专区在线观看| 国产免费一区二区三区不卡| 久久丫精品国产亚洲av不卡| 美女视频黄是免费的网址| 亚洲日韩av无码中文| 精品国产人成亚洲区| 99久久综合精品免费| 亚洲精品乱码久久久久蜜桃| 亚洲午夜av影院| 全部免费毛片在线播放| 亚洲gay片在线gv网站| 亚洲国产中文v高清在线观看| 国产精品网站在线观看免费传媒| 亚洲第一二三四区| 亚洲成a人无码av波多野按摩| 99久久国产免费中文无字幕| 亚洲a∨国产av综合av下载 | 拔擦拔擦8x华人免费久久|