我正在将以下行作为 javascript 写入 html 文件的末尾。由于某种原因,在将 place 变量写入文件后,添加了一个新行或一些类似的字符。我不介意这一点,因为我不会查看书面脚本,但 chrome 告诉我它是一个非法字符。
写入html的代码:
map_html.write(
"geocoder.geocode( { 'address': '" + place + "'}, function(results, status) {\n\
var marker = new google.maps.Marker();\n\
marker.setPosition(results[0].geometry.location);\n\
marker.setMap(map);\n\
bounds.extend(marker.position);\n\
});\n"
)
输出:
geocoder.geocode( { 'address': 'Brooklyn, NY
'}, function(results, status) {
var marker = new google.maps.Marker();
marker.setPosition(results[0].geometry.location);
marker.setMap(map);
bounds.extend(marker.position);
});
最佳答案
将您的代码替换为:
var geo_json = JSON.stringify({ 'address': place});
map_html.write(
"geocoder.geocode(" + geo_json + ", function(results, status) {\n\
var marker = new google.maps.Marker();\n\
marker.setPosition(results[0].geometry.location);\n\
marker.setMap(map);\n\
bounds.extend(marker.position);\n\
});\n"
)
这将回避问题,并允许您查看 stringify
ed json 的外观。编写自己的 json 通常不是一个好主意。让 javascript 生成 json,这很擅长。
如果这仍然导致痛苦,那么尝试 var geo_json = JSON.stringify({ 'address': place.trim()});
这将从 的末尾去除空格放置
字符串。
如果这仍然导致痛苦,那么尝试使用正则表达式来验证 place
输入。类似于 [A-Za-z_ ,]+
编辑
哦,糟糕,我在这里混淆了 javascript 和 python。
import json
geo_json = json.dumps({ 'address': place})
map_html.write(
"geocoder.geocode(" + geo_json + ", function(results, status) {\n\
var marker = new google.maps.Marker();\n\
marker.setPosition(results[0].geometry.location);\n\
marker.setMap(map);\n\
bounds.extend(marker.position);\n\
});\n"
)
关于javascript - 写入文件时添加了奇怪的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23399263/