Javascript 在Firefox 3.6.3中是否有人获得零高度选择字段?
如果在Firefox 3.6.3中打开此HTML(在一些早期版本中也已确认),并反复单击drawStuff()链接,则不会一致地呈现最后一个div的内容。仔细观察,它似乎正在渲染高度为0的选择字段。你知道为什么会这样吗Javascript 在Firefox 3.6.3中是否有人获得零高度选择字段?,javascript,html,firefox,Javascript,Html,Firefox,如果在Firefox 3.6.3中打开此HTML(在一些早期版本中也已确认),并反复单击drawStuff()链接,则不会一致地呈现最后一个div的内容。仔细观察,它似乎正在渲染高度为0的选择字段。你知道为什么会这样吗 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title> A Page </title>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title> A Page </title>
<script type="text/javascript">
var num_select_options = 800;
function drawStuff() {
for (var i = 0; i <= 1; i++) {
var foobar = document.getElementById('elem_' + i);
while (foobar.childNodes.length >= 1) {
foobar.removeChild(foobar.firstChild);
}
for (var j = 0; j < 4; j++){
var elem_select = document.createElement('select');
for (var k = 0; k < num_select_options; k++) {
elem_select.appendChild(new Option("Blah", k));
}
foobar.appendChild(elem_select);
}
}
}
</script>
</head>
<body>
<table border=1 style="width:900px;" summary="A Table">
<tr>
<td> <div id="elem_0"></div> </td>
<td> <div>abc</div> <div id="elem_1"></div> </td>
</tr>
</table>
<a href="javascript:drawStuff()"> drawStuff() </a>
<script type="text/javascript">
drawStuff();
</script>
</body>
</html>
一页
var num_select_options=800;
函数drawStuff(){
对于(变量i=0;i=1){
foobar.removeChild(foobar.firstChild);
}
对于(var j=0;j<4;j++){
var elem_select=document.createElement('select');
对于(var k=0;k
它对我来说是正常的
我在代码中看到的唯一奇怪的事情是,在结束标记中转义“/”字符,这是不需要的。使用。高度真的是0吗?如果是这样,请使用其他窗格找出它的来源。也许是用户样式表
[编辑]表单元素在哪里
此外,您还将一个内联元素(select
)放置在块元素(带有abc的div
)旁边。尝试在div
中创建选择
如果这也不起作用,请尝试使用CSS设置select
的大小。然后用你的发现报告Firefox的一个bug。我可以复制它。然而,我看不出你的代码有什么特别的错误
只是一个猜测。。。您正在页面中注入大量原始HTML。在某些情况下,浏览器可能无法处理它。我认为您可以尝试另一种方法:使用DOM方法,而不是innerHTML
。比如:
var select = document.createElement("select");
select.options.push( new Option("Blah", i) );
document.getElementById("elem_" + i).appendChild(select);
根据我的经验,浏览器有时更喜欢这样
更新
您还可以尝试一件事:将所有原始HTML存储在一个变量中,然后立即执行注入。也许您可以避免与DOM函数异步执行相关的问题:-?您使用的是什么版本的Firefox?根据Firebug,“选择”字段的高度为0。不知道为什么。页面上根本没有样式表或内联样式。谢谢您的建议。我尝试了一下,并更新了上面的html以反映这些变化。不幸的是,同样的结果。这个问题有很多奇怪的地方。如果将“num_select_options”的值降低到远小于它的值(800),问题就会消失。如果你去掉了含有“abc”的div,问题就消失了。