Сценарий информационного ящика CesiumJS не работает
Поэтому я работаю над настройкой карты цезия, отображая маркеры в различных положениях на основе данных JSON, полученных с другого сервера. Одна из вещей, которую я хочу сделать, - создать подобный гармошке элемент div для хранения списка строк, которые можно включать и выключать (чтобы скрыть данные, если они слишком длинные).
Однако Цезий отказывается запускать мой код в описании сущности. Я проверил код с простой функцией:
html += "<small onclick='test();'>[\u2212]</small>";
...
html += "<script>function test() { console.log('bob'); }<\/script>";
jsonData.description = html; // The Cesium CZML JSON entity
Тем не менее, выполнение кода выдает function not defined
ошибка в консоли, даже если я разрешаю запускать скрипты через
mapViewer.infoBox.frame.sandbox = "allow-same-origin allow-popups allow-forms allow-scripts allow-top-navigation";
У меня такой вопрос: я что-то здесь не так делаю? Я знаю, что Цезий загружает HTML-код описания сущности в изолированную рамку iframe, но я должен разрешить запуск сценариев в песочнице. Я также пытался положить test()
функция за пределами описания, но я все еще сталкиваюсь с той же ошибкой.
Любая помощь будет высоко оценен.
1 ответ
В настоящее время это не поддерживается. Для этого есть PR: https://github.com/AnalyticalGraphicsInc/cesium/pull/5764
Надеюсь, это будет одобрено в ближайшее время.