Рендеринг страниц, совместимых с xhtml, с использованием XSLT не будет корректно отображаться после встроенного блока JavaScript - PullRequest
1 голос
/ 16 июля 2010

В настоящее время я нахожусь в процессе обновления (большого количества) старого кода xsl + html, чтобы отобразить код, совместимый с xhtml, но столкнулся с проблемой, когда страницы содержат встроенный JavaScript.Некоторые из javascript могут быть удалены из встроенного и помещены в связанные файлы js.

Однако есть ряд мест, где элементы xsl используются внутри javascript.

При просмотре вывода в браузере рендеринг останавливается в том месте, где в исходном тексте присутствует javascript.(источник сгенерирован нормально).

Я попробовал все обычные взломы CDATA и xsl: comment вокруг этих блоков javascript, но все равно тот же результат.

Любая помощь по этому вопросу будет оценена,Пожалуйста, спросите, нужна ли вам какая-либо дополнительная информация.

Ответы [ 2 ]

1 голос
/ 16 июля 2010

Попробуйте запустить преобразованную страницу через валидатор XML.По крайней мере, это скажет вам, если это XML-совместимость или проблема совместимости браузера.Не видя преобразованного кода, трудно диагностировать происходящее.Ваша проблема может быть связана с ошибкой Javascript или неверным XML.Также сам браузер может обрабатывать XSLT постепенно и выполнять рендеринг, поскольку вы не указали, выполнялось ли преобразование перед рендерингом или как часть рендеринга.Лучший способ добраться до дна - это разбить на части.Запустите XSLT через совместимый XSLT-процессор, чтобы убедиться, что XSLT действителен.Затем выполните вывод через валидатор XML, чтобы убедиться, что вы не получите никаких ошибок валидации XML.Наконец, запустите вывод XSLT через верификатор XHTML.Если все эти шаги выполнены успешно, вы можете столкнуться с чем-то простым, например с ошибкой Javascript.

0 голосов
/ 29 июля 2010

После (принудительного) перерыва в выполнении этой задачи я повторно посетил и обнаружил ошибку, которая мешала браузеру корректно отображать содержимое. XSL неправильно выводил элементы iframe и script как самозакрывающиеся теги. Чтобы этого не случилось, я принудительно ввел в элемент пробелы, используя <xsl:text> </xsl:text>.

Спасибо за вашу помощь и предложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...