我正在使用传单并尝试在我创建的圆圈上创建一个弹出窗口。我使用以下代码
var jsonString = '{"location":"edinburgh","topNouns":["track","love"],"eventWords":{"shot":1},"numberOfTweets":177.0,"numberOfTweetsContainEventWord":1.0,"percentageOfEventTweets":0.5649717514124294,"lat":55.953252,"lon":-3.188267}';
var json = JSON.parse(jsonString);
var text = json.lat;
alert(text);
var circleColor = 'red';
var circle = L.circle([55.953252, -3.188267], 9000, {
color: circleColor,
fillColor: circleColor,
fillOpacity: 0.5
})
.bindPopup(text)
.addTo(map);
代码读入JSON字符串,创建一个圆圈,然后尝试将弹出窗口绑定到圆圈。
但是没有弹出窗口,我收到以下错误
Uncaught Error: NOT_FOUND_ERR: DOM Exception 8
我相信当我将text变量传递给.bindPopup方法时会发生这种情况。当我在.bindPopup方法中插入一个常量文本值时,弹出窗口会正确显示,但是我希望它能从JSON中获取文本。
使用alert方法我能够看到正确地从JSON中检索变量文本。
有谁知道为什么会出现这个错误?
链接到JSFiddle:http://jsfiddle.net/8HLJn/1/
努力让地图显示在JSFiddle中。
答案 0 :(得分:0)
管理以解决问题。我需要将text变量转换为字符串,如下所示
.bindPopup(String(text))
不完全确定警报方法为何正确显示文本,而我必须将变量强制转换为字符串,以便在传单弹出窗口中显示。