这周公司要出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下不能显示。