ESRI JS API - Add item to infowindow

Add a link to infowindow example

by Alex Azuero

HTML

<link rel="stylesheet" href="https://js.arcgis.com/3.12/esri/css/esri.css">
<script src="https://js.arcgis.com/3.14/init.js"></script>
<script type="text/javascript">
    var dojoConfig = {
        async: true
    };
</script>
<div id="map"></div>

CSS

body, html {
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
}
#map {
    height: 100%;
    width: 100%;
    margin: 0px;
}

JavaScript

require(['esri/arcgis/utils','dojo/_base/lang',
    'dojo/dom-construct',
    'dojo/on',
    'dojo/query'], function (arcgisUtils, lang, domConstruct, on, query) {
    var createMapOptions = {
        mapOptions: {
            slider: true
        },
        usePopupManager: true, // since version 3.10

        geometryServiceURL: "http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer"

    };
    var webMapItemID = "cf58d9a115e84de9ac5613b8c9e0fe16";
    deferred = arcgisUtils.createMap(webMapItemID, "map", createMapOptions);

    deferred.then(function (response) {
        map = response.map;
        
        

        on.once(this.map.infoWindow, 'selection-change', function (evt) {
            var nl = query('.esriPopupWrapper .actionList');

            domConstruct.create("a", {
                innerHTML: 'Extra Link!',
                href: '#',
                click: lang.hitch(this, function (evt) {
                    console.log('onClick - do something here!', evt);
                })
            }, nl[0], 'last');

        });

    }, function (error) {
        console.log("Error: ", error.code, " Message: ", error.message);
        deferred.cancel();
    });
});