我想在我的MVC 4網頁上實現一些基於位置的服務功能。我對使用Javascript和MVC完全陌生,所以請耐心等待。功能外的Javascript導致未捕獲的引用異常
這是我目前的網頁:
@{
ViewBag.Title = "OnlineUsers";
}
<html>
<head>
<title>Online Users</title>
<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.4/leaflet.css" />
<script src="http://cdn.leafletjs.com/leaflet-0.4/leaflet.js"></script>
</head>
<body>
<button onclick="showMap()">Show Map</button>
<button onclick="goToLocation()">My Location</button>
<div id="locationDetails"></div>
<div id="map" style="height: 500px; width: 800px"></div>
<script type="text/javascript">
**var map = L.map('map');**
function showMap() {
var map = L.map('map');
L.tileLayer('http://{s}.tile.cloudmade.com/BC9A493B41014CAABB98F0471D759707/997/256/{z}/{x}/{y}.png', {
maxZoom: 18,
attribution: 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://cloudmade.com">CloudMade</a>'
}).addTo(map);
map.locate({ setView: true, maxZoom: 16 });
}
</script>
</body>
</html>
在腳本部分的頂部是下面的一段代碼:var map = L.map('map');
。如果我將這段代碼包含在一個函數中,頁面加載並調用該函數將創建該映射。但是,如果我將此代碼(或任何其他JS代碼)放在函數之外,則該頁面將無法加載。
我使用Chrome的調試器和控制檯顯示以下錯誤:
Uncaught ReferenceError: L is not defined
我沒有看到「L」被定義任何地方,但後來爲什麼從函數中調用時,這項工作?
是因爲地圖需要一些參數嗎? - 試一試[http://leafletjs.com/](lettletjs.com/)'var map = L.map('map')。setView([51.505,-0.09],13); ' – Wez