这周公司要出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="width: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="width: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="width: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="width: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="width: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="width: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="width:100px;background:lightskyblue"></select>
</body>
</html>

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

  

相关文章:

  • 2021-11-22
  • 2021-10-07
  • 2021-07-24
  • 2021-12-06
  • 2021-05-08
  • 2021-10-08
猜你喜欢
  • 2022-12-23
  • 2021-11-25
  • 2022-01-03
相关资源
相似解决方案