/ / Possível carregar o Leaflet no arquivo JS externo? - javascript, html, folheto

Possível carregar o Leaflet no arquivo JS externo? - javascript, html, folheto

Eu sou novo para Leaflet e estava configurandoseguindo os tutoriais, que eu não tive nenhum problema para carregar o mapa. O problema começa quando tento executar o script por meio de um arquivo JS externo, em vez de colar o script dentro de uma tag HTML. Então, agora eu não consigo fazer isso funcionar assim: HTML:

<head>
<link rel="stylesheet" type="text/css" href="leaflet/leaflet.css"/>
<script type="text/javascript" src="leaflet/leaflet.js"></script>
<link rel="stylesheet" type="text/css" href="src/style.css"/>
<script type="text/javascript" src="src/javascript.js"></script>
</head>
<body>
<div id="mapid"></div>
</body>

Javascript:

var mymap = L.map("mapid").setView([51.505, -0.09], 13);

document.getElementById("mapid").onload = function loadMap(){
L.tileLayer("https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoiZGlvZ204MDAiLCJhIjoiY2o5aGRxY3B5MGdyZTMzczJvNm95NHAxeSJ9.6M_vVT8BcyJay_acp-eEXA", {
attribution: "Map data &copy; <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://mapbox.com">Mapbox</a>",
maxZoom: 18,
id: "mapbox.streets",
accessToken: "your.mapbox.access.token"
}).addTo(mymap);
};

No arquivo JS, tentei carregá-lo sem o onLoad () do elemento div e tentei com ele, como você pode ver no exemplo, mas nenhum deles funcionou. É possível até mesmo carregar o mapa do folheto como este?

Obrigado pelo seu tempo

Respostas:

1 para resposta № 1

a onload evento não está presente em um div elemento.

A propriedade onload do mixin GlobalEventHandlers é um manipulador de eventos para o evento load de um elemento Window, XMLHttpRequest, etc., que é acionado quando o recurso é carregado.

https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onload

No seu caso eu "pegar o onload no document.body:

document.body.onload = function () {
// Do stuff...
};