2008-10-20 86 views
0

如果我认为通过我的碧玉在IE7报道我看到下面的一个生成的HTML:碧玉报告产生不良HTML

<BR /><BR /> 
<A name="JR_PAGE_ANCHOR_0_1"> 
<TABLE style="WIDTH: 1000px" cellSpacing="0" cellPadding="0" bgColor="#ffffff" border="0"> 
<-- table body omitted --> 
</TABLE> 

两个BR标签通过JRHtmlExporterParameter.HTML_HEADER参数添加。在这些标记之后并且在报表开始之前,有一个Jasper报告生成的未关闭的锚标记。这个标签没有正确关闭的事实是搞乱了我的报告格式,因为IE超链接了整个报表TABLE。我实际上并没有使用这个锚标签,所以如果我可以阻止Jasper生成它,那将解决我的问题。

顺便说一下,这个问题只发生在IE浏览器,在Firefox中一切正常,因为锚标签正确关闭。

由于提前, 唐

回答

1

这是奇怪的代码,在<br />标签是XHTML风格,同时未关闭a标签是好的旧的HTML,像大写的标签名称。如果你用普通的HTML header/content-type来提供这样的页面,IE可能会很开心。

当您编写Firefox关闭标记时,我想您的意思是它正确无法将超链接范围扩展到块标记上。请注意,当您将页面保存到磁盘时,FF的查看源可以显示不存在的结束标记!

坦率地说,我不知道你是否可以用一些配置摆脱这些锚。如果没有人提供真正的解决方案,也许可以下载Jasper的源代码并在其中搜索JR_PAGE_ANCHOR,查看生成它的代码是否有条件驱动。

或者,如果可以的话,您可以应用生成的代码的后处理。

+0

如上所述,BR标签由我自己添加,而A标签由Jasper添加。当我编写Firefox关闭标签时,我的意思是,当我在Firebug中查看生成的源代码时,它显示为一对匹配的开放标签和封闭标签。 – 2008-10-20 16:56:02

2

我接受了菲尔的建议,并投入Jasper源代码。我已经解决了问题并将其提交给了该项目。原因和解决方案的详细信息可在here