2008-10-20 84 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