select在各浏览器中显示option的测试

  这周公司要出sp3了,忙着测试产品包,我负责测试js的产品包,必须保证每一个范例都可以运行,测试了一天发现了不少问题,其中一个就是使用select的范例在ie8时显示出问题,ie7下直接显示不了option,经过查资料将其兼容了,这里记录一下。

  方法1:

  代码如下: 

<html>
<head>
    <title></title>
    <script type="text/javascript">
        function init()
        {
            var s = document.getElementById("s");
            s.add(new Option("A"));
        }
    </script>
</head>
<body onload="init()">
    <select id="s" style="100px;background:lightskyblue"></select>
</body>
</html>

  测试结果:Firefox、Chrome、IE9、IE8、IE7、Safari、Opera显示正常。

  方法2:

  代码如下:

<html>
<head>
    <title></title>
    <script type="text/javascript">
        function init()
        {
            var s = document.getElementById("s");
            s.appendChild(new Option("B"));
        }
    </script>
</head>
<body onload="init()">
    <select id="s" style="100px;background:lightskyblue"></select>
</body>
</html>

  测试结果:Firefox、Chrome、Safari、Opera显示正常,IE9、IE8、IE7下不能显示。

  方法3:

  代码如下: 

<html>
<head>
    <title></title>
    <script type="text/javascript">
        function init()
        {
            var s = document.getElementById("s");
            s.add(new Option("A"));
            s.insertBefore(new Option("B"), s.options[1]);
        }
    </script>
</head>
<body onload="init()">
    <select id="s" style="100px;background:lightskyblue"></select>
</body>
</html>

  测试结果:Firefox、Chrome、Safari、Opera显示正常,IE9、IE8、IE7下不能显示。

  方法4:

  将方法3的insertBefore第二个参数去掉,也就是说我们第一个option就想使用insertBefore时,看一下情况:

<html>
<head>
    <title></title>
    <script type="text/javascript">
        function init()
        {
            var s = document.getElementById("s");
            s.insertBefore(new Option("D"));
        }
    </script>
</head>
<body onload="init()">
    <select id="s" style="100px;background:lightskyblue"></select>
</body>
</html>

  测试结果:Chrome、Safari显示正常,Firefox、IE9、IE8、IE7、Opera下不能显示。

  方法5:

  代码如下: 

<html>
<head>
    <title></title>
    <script type="text/javascript">
        function init()
        {
            var s = document.getElementById("s");
            s.options[0] = new Option("E");
        }
    </script>
</head>
<body onload="init()">
    <select id="s" style="100px;background:lightskyblue"></select>
</body>
</html>

  测试结果:Firefox、Chrome、IE9、IE8、IE7、Safari、Opera显示正常。

  方法6:

  代码如下:

<html>
<head>
    <title></title>
    <script type="text/javascript">
        function init()
        {
            var s = document.getElementById("s");
            var op = document.createElement("option");
            op.appendChild(document.createTextNode("F"));
            s.appendChild(op);
        }
    </script>
</head>
<body onload="init()">
    <select id="s" style="100px;background:lightskyblue"></select>
</body>
</html>

  测试结果:Firefox、Chrome、IE9、IE8、IE7、Safari、Opera显示正常。

  方法7:

  代码如下:

<html>
<head>
    <title></title>
    <script type="text/javascript">
        function init()
        {
            var s = document.getElementById("s");
            s.innerHTML = "<option>X</option><option>Y</option>";
        }
    </script>
</head>
<body onload="init()">
    <select id="s" style="100px;background:lightskyblue"></select>
</body>
</html>

  测试结果:Firefox、Chrome、Safari、Opera显示正常,IE9、IE8、IE7下不能显示。

  

原文地址:https://www.cnblogs.com/zhuimengdeyuanyuan/p/2986323.html