因此,我正在根据从另一台服务器获取的 JSON 数据,通过在不同位置显示标记来自定义 Cesium 地图。我想做的一件事是创建一个类似手风琴的 div 元素来保存可以打开和关闭的字符串列表(如果数据太长则隐藏数据)。
但是,Cesium 拒绝在实体描述中运行我的代码。我用一个简单的函数测试了代码:
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";
我的问题是:我在这里做错了什么吗?我知道 Cesium 在沙盒 iframe 中加载实体描述 HTML 代码,但我应该允许脚本在沙盒中运行。我也尝试将test()
功能放在描述之外,但我仍然遇到同样的错误。
任何帮助将不胜感激。