fiddle.html - jsFiddle/Gist integration

HTML

<!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=9, IE=10">
    <meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no"/>
    <title>Simple Map</title>
    <link rel="stylesheet" href="http://serverapi.arcgisonline.com/jsapi/arcgis/3.5/js/dojo/dijit/themes/claro/claro.css">
    <link rel="stylesheet" href="http://serverapi.arcgisonline.com/jsapi/arcgis/3.5/js/esri/css/esri.css">
    <style>
      html, body, #map {
        height:100%;
        width:100%;
        margin:0;
        padding:0;
      }
      body {
        background-color:#FFF;
        overflow:hidden;
        font-family:"Trebuchet MS";
      }
    </style>
    <script src="http://serverapi.arcgisonline.com/jsapi/arcgis/3.5/"></script>
    <script>
      dojo.require("esri.map");
      var map = null;
      var extent =  null;
      var maxExtent = null;

      function init() {
        map = new esri.Map("map",{
          basemap:"topo",
          center:[-122.45,37.75], //long, lat
          zoom:13,
          sliderStyle:"small"
        });
        //set max extent to inital extent
        dojo.connect(map, "onLoad", function(){
         maxExtent = map.extent;
        });

        //check to see if map is within max extent when its extent changes.  If not, roll back to the max
        //extent that we set above
        dojo.connect(map, "onExtentChange", function(extent){
          if((map.extent.xmin < maxExtent.xmin) ||
            (map.extent.ymin < maxExtent.ymin)  ||
            (map.extent.xmax > maxExtent.xmax) ||
            (map.extent.ymax > maxExtent.ymax) 
            ) {
            map.setExtent(maxExtent);
            console.log("max extent reached, rolling back to previous extent");
          }
        
      });

      }
      
      dojo.ready(init);

    
    </script>
  </head>

  <body class="claro">
    <div id="map"></div>
 ...