Yes, by dojo popup I mean the widget, which runs off dojo. It's hard to keep terms straight when I have to keep switching APIs by project. Here's the code I have for just the map layers and the info windows. When it's done loading, clicking on the map shows nothing. As soon as it's moved just a pixel, the info windows show up.
<script type="text/javascript">
dojo.require("esri.map");
dojo.require("esri.layers.FeatureLayer");
var map;
var campus;
function init() {
map = new esri.Map("mapDiv",{extent:startExtent });
var spatialRef = new esri.SpatialReference({wkid:102100});
var startExtent = new esri.geometry.Extent();
startExtent.xmin = -9879338;
startExtent.ymin = 5286787;
startExtent.xmax = -9878257;
startExtent.ymax = 5287623;
startExtent.SpatialReference = spatialRef;
map.setExtent(startExtent);
var basemap = new esri.layers.ArcGISTiledMapServiceLayer("SERVICE NAME");
map.addLayer(basemap);
//Popup code for campus building layer
var contenta = "<b>Building Type</b>: ${Type}" +
"<br /><b>Hours</b>: ${Hours}" +
"<br /><input type='hidden' id='url' value=${FloorPlan}></input>" + // KEEP THIS LINE ON- NEEDED FOR loadUrl FUNCTION
"<br /><button onclick=revealModal('modalPage') value='test' />Floor Plan</button>";
var bldginfo = new esri.InfoTemplate("${BldgName}", contenta);
campus = new esri.layers.FeatureLayer("SERVICE NAME", {
mode: esri.layers.FeatureLayer.MODE_ONDEMAND,
outFields: ["*"],
infoTemplate: bldginfo
});
map.addLayer(campus);
//Popup code for parking lot layer
var contentb = "<b>Parking Lot</b>: ${LotNo} ${Commuter}" +
"<br />This lot ${Meters} have parking meters.";
var parkinfo = new esri.InfoTemplate("Parking Lot Information", contentb);
parking = new esri.layers.FeatureLayer("SERVICE NAME", {
mode: esri.layers.FeatureLayer.MODE_ONDEMAND,
outfields: ["*"],
infoTemplate: parkinfo
});
map.addLayer(parking);
}