我正在尋找一個eval()替代..google.maps.MapOptions + JSON:避免eval()?
我產生USAL谷歌地圖,API V3:
// define options
var mapOptions = {
zoom: 18,
center: new google.maps.LatLng(-33.890542, 151.274856),
mapTypeId: eval(maptype["map"]),
panControl: true,
zoomControl: true,
mapTypeControl: true,
scaleControl: true
};
// create map
map = new google.maps.Map(document.getElementById('map_test),mapOptions);
這工作,因爲它應該的,但我想避免的eval()。 地圖類型經由PHP定義,使用JSON:
echo 'maptype = '.json_encode($options).';';
是否有一個的eval替代?
更新: 完整的源代碼:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js'></script>
<script src="https://maps.googleapis.com/maps/api/js?v=3.7&sensor=false&language=de"></script>
</head>
<body>
<script>
maptype = {"map":"google.maps.MapTypeId.SATELLITE"};</script>
<script>
function Map()
{
var mapOptions = {zoom: 18, center: new google.maps.LatLng(-33.890542, 151.274856), mapTypeId: eval(maptype["map"])};
// create map
map = new google.maps.Map(document.getElementById('map'),mapOptions);
}
</script>
<div id="map" style="width:1200px; height:800px"></div>
<script> jQuery(document).ready(function ($) {Map();});</script>
</body>
</html>
結果:沒有錯誤,沒有地圖,只是一個灰色背景。
只需'mapTypeId:ngggOptions [「map」]'應該可以工作。 – dfsq 2013-02-26 18:30:34
JSON代表JavaScript Object Notation,因此它是有效的JSON,然後它是JavaScript中的有效對象:) – 2013-02-26 18:31:17
您正在指定URL中的v = 3.7' - 此版本不再可用;你應該只是刪除'v'參數 – duncan 2013-02-27 09:25:09