时间:2021-05-08
这周公司要出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下不能显示。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
如下复制代码代码如下:IE6/7/8中Option元素未设value时Select将获取空字符串onetwothree当触发change事件时,各浏览器中测试结
我们知道select标签在各个浏览器中的属性和各浏览器的支持各有些不同,从而造成select选择框在各浏览器的显示有不同,下面我们通过对主要外形CSS属性的支持
测试页面代码:复制代码代码如下:PHP获取表单area数据中的换行问题在浏览器中打开后,在表单中输入:按提交后,浏览器中显示结果如下:在记事本可可看到如下结果:
在IE浏览器中,给select的options设置disable属性是没用的。必须采用一定手段才可以解决这个问题。当然原理就是记住上次选中的option。thi
由于各浏览器对页面的解析不同,会导致页面在不同浏览器中显示的样式不一致,为了保持页面的统一,经常需要对浏览器进行兼容性问题的调试。CSSHack面对浏览器诸多的