eMenu Web Integration loading…

Add eMenu to your website with a small script, similar to GA/Pixel.

1) Install the loader

<!-- eMenu Web Integration -->
<script>
  (function(w,d,s,u){
    w.emenu = w.emenu || function(){ (w.emenu.q = w.emenu.q || []).push(arguments) };
    var el = d.createElement(s); el.async = true; el.src = u;
    (d.head || d.body).appendChild(el);
    // Configure your menu IDs (one or many). Everything else is optional.
    emenu('init', { menuIds: ['creative-demo'] });
    // Enable click-to-open on elements with [data-emenu-open]
    emenu('attachButtons');
  })(window, document, 'script', 'https://js.emenu.net/web-integration.js');
</script>

The script handles mobile vs desktop automatically.

2) Add buttons

<button type="button" data-emenu-open="creative-demo">View Menu</button>
<!-- Multiple menus on one page -->
<button type="button" data-emenu-open="creative-demo-dubai">Dubai Branch</button>
<button type="button" data-emenu-open="creative-demo-abudhabi">Abu Dhabi Branch</button>
<!-- Override mobile target for this button -->
<a href="#" data-emenu-open="creative-demo" data-emenu-target="_blank">Open Menu</a>

Live demo

Desktop: slides in a drawer with an iframe (max 480px). Mobile: opens the menu URL.

API

emenu('init', {
  menuIds: ['creative-demo'],      // optional allowlist
  panelWidth: 480,                 // default
  slideFrom: 'right',              // 'right' | 'left'
  mobileBreakpoint: 768,           // px
  openTarget: '_self',             // mobile only: '_self' | '_blank'
  title: 'Menu',                   // drawer title
  cspNonce: undefined,             // CSP nonce for injected <style> if needed
  debug: false
});

emenu('attachButtons');            // delegates clicks for [data-emenu-open]
emenu('open', 'creative-demo', { mode:'auto'|'iframe'|'link', target:'_self'|'_blank', title: 'Menu' });
emenu('toggle', 'creative-demo');
emenu('close');
emenu('configure', { panelWidth: 420 });
emenu('destroy');

CSP & hosting notes