相关疑难解决方法(0)

加载本地JSON文件

我正在尝试加载本地JSON文件,但它无法正常工作.这是我的JavaScript代码(使用jQuery:

var json = $.getJSON("test.json");
var data = eval("(" +json.responseText + ")");
document.write(data["a"]);
Run Code Online (Sandbox Code Playgroud)

test.json文件:

{"a" : "b", "c" : "d"}
Run Code Online (Sandbox Code Playgroud)

没有显示任何内容,Firebug告诉我数据未定义.在Firebug中,我可以看到json.responseText并且它是好的和有效的,但是当我复制该行时很奇怪:

 var data = eval("(" +json.responseText + ")");
Run Code Online (Sandbox Code Playgroud)

在Firebug的控制台中,它可以工作,我可以访问数据.

有人有解决方案吗?

javascript jquery firebug json local-files

299
推荐指数
14
解决办法
84万
查看次数

从R中生成的Leaflet地图的json加载Quarto html地图数据

我创建了一篇四开版博客文章,其中包含许多leaflet在 R 中生成的地图。由于每个地图的数据都嵌入在 html 文件中,因此文件本身非常大。这会导致托管该文件的服务器出现问题。

我想让html文件变小。embed-resources: false Quarto 中的YAML 选项意味着库(例如leaflet.js)存储在单独的文件中。有帮助,但数据仍然存储在 html 中(每个地图一次)。我正在尝试从单独的文件加载数据本身。这是一个最小的文件示例qmd

---
format:
  html:
    embed-resources: false  
---

```{r}
leaflet::leaflet(elementId = "map1") |>
    leaflet::addTiles() |>
    leaflet::addMarkers(lng = 174.768, lat = -36.852, popup = "The birthplace of R")
```
Run Code Online (Sandbox Code Playgroud)

当我quarto render这样做时,它会创建一个 html 文件,该文件在浏览器中打开时显示地图。该文件包含以下地图数据<div>

<div class="leaflet html-widget html-fill-item-overflow-hidden html-fill-item" id="map1" style="width:100%;height:464px;"></div>
<script type="application/json" data-for="map1">{**json**}</script>
</div>
Run Code Online (Sandbox Code Playgroud)

我写的地方{**json**}有一长串 json,其中包含地图坐标、CRS 和各种选项。

在我看来,我也许可以将 json 内容复制到文件中,然后更改标签<script>以从该文件加载数据:

---
format:
  html: …
Run Code Online (Sandbox Code Playgroud)

javascript r leaflet r-leaflet quarto

7
推荐指数
1
解决办法
346
查看次数

标签 统计

javascript ×2

firebug ×1

jquery ×1

json ×1

leaflet ×1

local-files ×1

quarto ×1

r ×1

r-leaflet ×1