我在试图复制和修复的 jsp 中有一个遗留代码错误。他们使用带有 div 的框架,java 1.6。JBoss 4.3、jQuery 1.6.2 和 scriptlet(无 JSTL)。这是旧与新的混合。
有两列的主框架使用 CSS 进行布局是问题所在。左列是用 3 个 gif 创建的树,每行都有一个 span。有点像 Windows 资源管理器类型的树,但在加载时它只有一个级别。
布局是这样的:
主机架
div 两列
div 左列
表单 1
表单 2 具有 14 个隐藏表单输入和一个资源管理器类型树
div 右列
链接
CSS(我更改了一些名称并省略了右侧的列项)。
body, html {
background: none repeat scroll 0 0 #FFFFFF;
color: #000000;
font-family: Verdana,Arial,Helvetica,sans-serif;
height: 100%;
margin: 0;
padding: 0;
white-space: nowrap;
}
#outer {
background: none repeat scroll 0 0 #FFFFFF;
height: 100%;
margin: 0;
width: 100%;
}
#leftTree {
background: none repeat scroll 0 0 #FFFFFF;
border: 1px none;
cursor: pointer;
float: left;
margin-left: 20px;
margin-top: 10px;
width: 45%;
}
#rightColumnDiv {
background: none repeat scroll 0 0 #FFFFFF;
float: left;
margin: 0;
width: 50%;
}
.treeMenuSelected {
background-color: #0033CC;
color: #FFFFFF;
float: left;
font-size: 12px;
margin: 0;
}
.treeMenuNormal {
background-color: #FFFFFF;
color: #0033CC;
cursor: pointer;
float: left;
font-size: 12px;
margin: 0;
}
.treeMenuDisabled {
background-color: #FFFFFF;
color: #0033CC;
cursor: pointer;
float: left;
font-size: 12px;
margin: 0;
}
.header {
color: #000000;
font-family: Verdana,Arial,Helvetica,sans-serif;
font-size: 14px;
font-weight: bold;
}
h1 {
color: #000000;
display: inline;
font-family: Verdana,Arial,Helvetica,sans-serif;
font-size: 14px;
font-weight: bold;
line-height: 130%;
}
h2 {
color: #000000;
display: inline;
font-family: Verdana,Arial,Helvetica,sans-serif;
font-size: 12px;
font-weight: bold;
}
h3 {
color: #000000;
display: inline;
font-family: Verdana,Arial,Helvetica,sans-serif;
font-size: 13px;
font-weight: normal;
}
a:link {
color: #3C5E9E;
text-decoration: none;
}
a:visited {
color: #3C5E9E;
text-decoration: none;
}
a:hover {
color: #3C5E9E;
text-decoration: underline;
}
scriptlet 用于从 bean 获取树以显示到页面:
<%=page.getTree().toString()%>
逐行通过jsp我从bean中获取所有数据,然后它只首先显示树。然后调用一个 javascript 函数来填充右列信息。
问题:
在较旧的机器上(不确定硬件),左列随机显示树对角线,在屏幕上层叠,而不是垂直;但是,另一列正常显示。我已经花了两天时间,无法复制它。我也没有截图可以通过。它只发生在使用这棵树的页面上。
我正在使用 IE 工具以及带有 FF 的 firebug(即使它是 IE 问题)来尝试查明问题所在并复制它。
- 删除隐藏字段中的一些数据会导致树根本不显示。
- 制作输入文本将水平移动第一棵树,但其余显示正常。
- 我已经查看了 CSS 本身,没有看到任何可能导致这种情况的东西。
- 我认为这可能是页面加载的时间问题,但是所有数据都从后端返回到 bean,然后在完成后传递给页面。
主要问题是确定问题发生在哪里,而我无法做到这一点。我不知道它是否与IE错误,CSS或什么有关?关于如何解决此问题的任何想法?
更新:
我确实发现当问题发生时,页面加载正常,然后树重新加载,这就是问题出现的时候。似乎 CSS 渲染的时间可能是原因,因为这些列是使用 CSS 构建的。