Ho provato questa domanda su StackOverflow ma non ho avuto risposte. Spero che tutti possano essere in grado di aiutare.
Creazione di un'applicazione di mappatura Web in Javascript / Dojo:
Quando carico l'app in un browser, carica gli elementi html ma interrompe l'elaborazione. Devo aggiornare il browser per farlo caricare il resto della pagina e il javascript.
Ho fatto test e debug tutto il giorno e ho scoperto che i miei file JS esterni erano nel posto sbagliato (sono un novellino). È stato risolto il problema e l'app si carica alla grande ... TRANNE uno dei miei file non viene letto correttamente, o affatto.
Quando sposto il contenuto del file JS esterno in questione nel codice principale nel valore predefinito, le funzionalità che contengono funzionano perfettamente ... MA la mappa richiede di nuovo l'aggiornamento.
Perplesso. Di seguito è riportato il codice nel file JS esterno che sta causando il mio problema. Non riesco a capire perché sia un problema perché le funzioni funzionano come previsto quando non è esterno.
Qualsiasi aiuto è molto apprezzato.
//Toggles
function basemapToggle() {
basemaptoggler = new dojo.fx.Toggler({
node: "basemaptoggle",
showFunc : dojo.fx.wipeIn,
showDuration: 1000,
hideDuration: 1000,
hideFunc : dojo.fx.wipeOut
})
}
dojo.addOnLoad(basemapToggle);
function layerToggle() {
layertoggler = new dojo.fx.Toggler({
node: "layertoggle",
showFunc : dojo.fx.wipeIn,
showDuration: 750,
hideDuration: 750,
hideFunc : dojo.fx.wipeOut
})
}
dojo.addOnLoad(layerToggle);
function legendToggle() {
legendtoggler = new dojo.fx.Toggler({
node: "legendtoggle",
showFunc : dojo.fx.wipeIn,
hideFunc : dojo.fx.wipeOut
})
}
dojo.addOnLoad(legendToggle);
Ecco la parte anteriore del mio codice
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=7, IE=8, IE=9" />
<meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no"/>
<title>
Zoning Classifications
</title>
<link rel="Stylesheet" href="ZoningClassifications.css" />
<link rel="stylesheet" type="text/css" href="http://serverapi.arcgisonline.com/jsapi/arcgis/3.0/js/dojo/dijit/themes/claro/claro.css">
<link rel="stylesheet" type="text/css" href="http://serverapi.arcgisonline.com/jsapi/arcgis/3.0/js/esri/dijit/css/Popup.css">
<link rel="stylesheet" type="text/css" href="http://serverapi.arcgisonline.com/jsapi/arcgis/3.0/js/dojo/dojox/grid/resources/Grid.css">
<link rel="stylesheet" type="text/css" href="http://serverapi.arcgisonline.com/jsapi/arcgis/3.0/js/dojo/dojox/grid/resources/claroGrid.css">
<style type="text/css">
</style>
<script src="JS/layers.js"></script>
<script src="JS/search.js"></script>
<script src="JS/basemapgallery.js"></script>
<script src="JS/identify.js"></script>
<script src="JS/toggles.js"></script>
<script type="text/javascript">
var djConfig = {
parseOnLoad: true
};
</script>
<script type="text/javascript" src="http://serverapi.arcgisonline.com/jsapi/arcgis/?v=3.0"></script>
<script type="text/javascript">
dojo.require("dijit.dijit"); // optimize: load dijit layer
dojo.require("dijit.layout.BorderContainer");
dojo.require("dijit.layout.ContentPane");
dojo.require("esri.map");
dojo.require("dijit.TitlePane");
dojo.require("esri.dijit.BasemapGallery");
dojo.require("esri.arcgis.utils");
dojo.require("esri.tasks.locator");
dojo.require("esri.dijit.Legend");
dojo.require("esri.dijit.Popup");
dojo.require("dijit.form.Button");
dojo.require("dojo.fx");
dojo.require("dijit.Dialog");
dojo.require("dojo.ready");
dojo.require("dijit.TooltipDialog");
dojo.require("dojox.grid.DataGrid");
dojo.require("dojo.data.ItemFileReadStore");
dojo.require("esri.tasks.find");
EDIT 2 Ho completamente riscritto l'app inserendo tutto il codice (tranne i css) nel file default.html principale. Ho provato pezzo per pezzo per assicurarmi che funzionasse come volevo. L'aggiunta del codice di attivazione / disattivazione è l'unico codice che lo genera e provoca l'aggiornamento extra.
Quindi per ora sto usando dijit.TitlePane per contenere gli elementi a discesa (galleria di base, livelli, legenda). Tuttavia, con questo non puoi cambiare l'aspetto e renderli immagini, che è il mio obiettivo finale.
Qualcuno può suggerire un'alternativa in modo da poter utilizzare 3 immagini diverse in modo che quando si fa clic sull'immagine e il menu a discesa si apre tenendo la galleria della mappa di base, l'elenco dei livelli e la legenda?