Add eMenu to your website with a small script, similar to GA/Pixel.
<!-- 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.
<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>
Desktop: slides in a drawer with an iframe (max 480px). Mobile: opens the menu URL.
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');
script-src must allow https://js.emenu.net.frame-src (or child-src) must allow https://qr.emenu.net.style-src disallows inline styles, pass a nonce via cspNonce.