Pen Settings

HTML

CSS

CSS Base

Vendor Prefixing

Add External Stylesheets/Pens

Any URLs added here will be added as <link>s in order, and before the CSS in the editor. You can use the CSS from another Pen by using its URL and the proper URL extension.

+ add another resource

JavaScript

Babel includes JSX processing.

Add External Scripts/Pens

Any URL's added here will be added as <script>s in order, and run before the JavaScript in the editor. You can use the URL of any other Pen and it will include the JavaScript from that Pen.

+ add another resource

Packages

Add Packages

Search for and use JavaScript packages from npm here. By selecting a package, an import statement will be added to the top of the JavaScript editor for this package.

Behavior

Auto Save

If active, Pens will autosave every 30 seconds after being saved once.

Auto-Updating Preview

If enabled, the preview panel updates automatically as you code. If disabled, use the "Run" button to update.

Format on Save

If enabled, your code will be formatted when you actively save your Pen. Note: your code becomes un-folded during formatting.

Editor Settings

Code Indentation

Want to change your Syntax Highlighting theme, Fonts and more?

Visit your global Editor Settings.

HTML

              
                <div class="font-sans antialiased w-screen">
  <div class="w-screen flex flex-col space-x-0 h-screen">
    <div class="flex-1 min-w-full p-4">
      <h3 class="text-xl font-semibold">Update an iframe src to load specific map features in Mango</h3>
      <ol class="text-base p-4">
        <li>Select a state from the dropdown list</li>
        <li>click "Update map" to update the permalink used as the iframe src using jQuery.</li>
      </ol>
      <p class="text-sm p-4">Switch to the JS view to see how this works</p>
      <hr>
      <form>
        <!-- Label for the dropdown; associates with the dropdown by the 'for' attribute pointing to 'id', which should be the same as the dropdown's ID. -->
        <label class="text-base font-semibold" for="id">Choose a state:</label>
        <!-- Dropdown menu where users select a state. Its 'id' attribute connects it to the label above and to the jQuery selector used in the JavaScript code. -->
        <select name="features" id="id" class="border px-1 py-1 rounded-lg">
          <option value="" selected disabled>Please select...</option>
          <!-- Each option represents a state with a unique value that corresponds to the 'gid' used in the JavaScript function to update the iframe source. -->
          <option value="63">Florida</option>
          <option value="68">Kentucky</option>
          <option value="2">Montana</option>
          <option value="37">Washington</option>
        </select>
        
        <!-- Button that triggers the JavaScript function 'loadSelection()' when clicked. This function updates the iframe's 'src' attribute based on the selected state. -->
        <input type="button" class="transition duration-300 ease-in-out px-4 py-1 rounded-lg bg-green-400 cursor-pointer hover:bg-green-700 hover:text-white" value="Update map" onClick="loadSelection()" />
      </form>
    </div>
    <div class="mx-none flex-1 flex-grow">
      <!-- Iframe that displays the map. The 'id' attribute 'iframe' connects it to the JavaScript function 'loadSelection()', which updates this iframe's 'src' based on the selected state. -->
      <iframe id="iframe" class="h-screen lg:w-screen md:w-screen sm:min-w-full" src="https://mangomap.com/examples/maps/51841/category-map"></iframe>
    </div>
  </div>
</div>

              
            
!

CSS

              
                
              
            
!

JS

              
                // Define a function called loadSelection that updates the source (src) of an iframe based on the user's selection from a dropdown menu.
function loadSelection() {
  // Use jQuery to get the value of the selected option from the dropdown menu with the id 'id'.
  // This value, referred to as 'gid' here, is an internal Mango identifier. 
  // Customers will need to use an attribute field and value from their own dataset.
  var gid = $("#id").val();
  
  // Construct a new URL for the iframe by appending parameters to the base URL.
  // 'layer' is a predefined parameter in the URL, likely specific to the map being used.
  // 'field=gid' specifies that the gid (geographic identifier) will be the field to use.
  // Users should replace 'gid' with an appropriate field key from their own data.
  // 'value=' is where the selected state's identifier (gid) is appended to the URL.
  var newURL =
    "https://mangomap.com/examples/maps/51841/category-map?layer=c02f3720-15d4-11e6-86d6-06c182e4d011&field=gid&value=" +
    gid;
  
  // Use plain JavaScript to select the iframe element by its ID ('iframe').
  var iframe = document.getElementById("iframe");
  
  // Update the 'src' attribute of the iframe to the new URL constructed above.
  // This change causes the iframe to reload with the map view corresponding to the selected state.
  iframe.src = newURL;
}

              
            
!
999px

Console