2015-11-16 5 views
1

пытается использовать document.getElementById() в jsreport, используя раздел скриптов в меню слева, но оно возвращает назад произошлоJavaScript работает неправильно в JSReport

Error - Ошибка при визуализации отчета: документ не определен

Что дает? Это простой JavaScript для конкретного идентификатора.

+0

Можем ли мы увидеть код? – Brant

+0

'document.getElementById (" # showUpdatedRecordsFalse "). Style.visibility =" false ";' –

+0

Также попытался использовать jQuery внутри средства визуализации как таковой: '$ (" # showUpdatedRecordsFalse "). Css (" visibility "," false "); ' –

ответ

0

Проблема связана с асинхронностью. document.getElementById должен появиться после того, как будет создан элемент, который вы хотите настроить. Поэтому установка сценария в нижней части страницы устраняет проблему.

0

Сценарии, которые включены как часть запроса генерации отчета, а не встроенные с шаблоном, не содержат документ или любые другие объекты, созданные браузером.

Если вы пытаетесь использовать Javascript для изменения документа, вы почти наверняка делаете что-то неправильно. Он не предназначен для создания интерактивного контента, поэтому ваш шаблон и данные уже должны быть исправлены к моменту отправки запроса. Возможно, вы можете обойти это с помощью require.js, но почему бы вам? Если вы действительно генерируете отчет, вы можете сделать все заблаговременно, прежде чем запрашивать выход.

+0

Да, Ян объяснил это. Вот почему JavaScript должен быть встроенным. –

+0

Но на самом деле вам не нужно включать Javascript, потому что этот инструмент предназначен для использования с фиксированными данными и шаблонами. Включение скриптов предназначено для таких вещей, как номера форматирования (которые вы можете делать заранее) и создания графиков и другой графики (что вы можете сделать заранее). Вы должны сделать шаг назад и спросить себя, почему вы пытаетесь манипулировать DOM в своем отчете, вместо того, чтобы изменять шаблон или данные, прежде чем делать запрос на создание отчета. –

+0

Программно, я скрываю div, если нет данных для заполнения этого конкретного div. Отчеты являются динамическими, как и данные. Если нет данных, я хочу отобразить div, в котором говорится, что нет данных, иначе я хочу показать div, который правильно форматирует данные. Это нужно сделать в JavaScript, если я чего-то не упускаю. –