Если я просматриваю HTML-код, сгенерированный одним из моих отчетов Jasper в IE7, я вижу следующее:
<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 ссылается на всю ТАБЛИЦУ отчета. Я не использую этот тег привязки, поэтому, если бы я мог предотвратить его создание Джаспером, это решило бы мою проблему.
Кстати, эта проблема возникает только в IE, в Firefox все работает нормально, потому что тег привязки правильно закрыт.
Заранее спасибо, Дон




Это странный код, теги <br /> выполнены в стиле XHTML, а незакрытые теги a - это старый добрый HTML, как и имена тегов в верхнем регистре. Если вы обслуживаете такую страницу с простым HTML-заголовком / типом содержимого, возможно, IE будет счастлив.
Когда вы пишете, что Firefox закрывает тег, я полагаю, вы имеете в виду, что он правильно не расширяет диапазон гиперссылок на теги блоков. Обратите внимание, что источник просмотра FF может отображать закрывающие теги, которых нет при сохранении страницы на диск!
Честно говоря, я не знаю, можно ли избавиться от этих якорей с помощью какой-нибудь конфигурации. Если ни у кого нет настоящего решения, возможно, вы можете загрузить исходный код Jasper и выполнить поиск в нем JR_PAGE_ANCHOR, проверяя, является ли генерирующий его код условно управляемым.
Или, если можете, вы можете применить постобработку сгенерированного кода.
Однако когда я просматриваю сгенерированный источник в Web Developer (эквивалент Firebug в IE), он выглядит так, как показано выше.
Хорошо, что вы нашли решение. Для записи Firebug показывает строковую версию Dom, а не исходный код, поэтому он всегда правильно сформирован. И я лучше понимаю теги в верхнем регистре, если это тоже сгенерированное представление.
Я последовал совету Фила и погрузился в исходный код Jasper. Я устранил проблему и отправил ее в проект. Подробная информация о причине и разрешении доступна здесь.
Как указано выше, теги BR добавляю я, а тег A - Джаспер. Когда я пишу, что Firefox закрывает тег, я имею в виду, что он отображается как пара совпадающих открытых и закрытых тегов, когда я просматриваю сгенерированный источник в Firebug.