Il codice è composto da due parti: l'iFrame vero e proprio e uno script utile a far comunicare il modulo con la pagina che lo ospita (per ottimizzarne l'integrazione).
Se il modulo del tuo ristorante prevede anche la vendita di prodotti (o contestualmente alla prenotazione oppure sotto forma di voucher o prodotti acquistabili separatamente) dovrai installare la versione dello script "con vendita prodotti". Ricordati di comunicarci su quale sito web pubblicherai il modulo. In questo caso lo script gestisce sia i locali con la vendita dei prodotti che quelli senza (non servono due script distinti).
E' necessario sostituire "nomebrevedellocale" con il nome che è stato comunicato (corrisponde a quello del link con cui si accede all'applicazione per gestire le prenotazioni).
Personalizza automaticamente i codici prima di copiarli, inserisci qui il nome breve del locale:
<iframe src="https://nomebrevedellocale.prenota-web.it/prenotazioni/?iframe=1&lang=it" allowfullscreen style="border:0;width:100%;" id="iFramePrenota" ></iframe>
Se il vostro sito ha una barra di navigazione sempre visibile in alto (anche quando si scrolla), la cosiddetta "sticky bar", è opportuno valorizzare anche la variabile offsetH inserendo il valore dell'altezza della barra in pixel (es. 100).
<script>
function adatta (evt) {
var offsetH=0;
if (evt.origin !== 'https://nomebrevedellocale.prenota-web.it') {
message = 'Dominio non autorizzato';
}
else {
var iFrameID = document.getElementById('iFramePrenota');
if(iFrameID) {
iFrameID.style.border = '0';
iFrameID.style.width = '100%';
iFrameID.style.marginBottom = '1500px';
var myHeight=evt.data.toString();
if (evt.data=='top') {
var mytop=iFrameID.getBoundingClientRect().top + window.pageYOffset - iFrameID.ownerDocument.documentElement.clientTop - offsetH;
document.documentElement.scrollTop = mytop;
iFrameID.style.marginBottom = '0';
} else if (myHeight.substring(0, 6)=='middle') {
var mytop=iFrameID.getBoundingClientRect().top + window.pageYOffset - iFrameID.ownerDocument.documentElement.clientTop - offsetH;
iFrameID.style.height = window.innerHeight + 'px';
iFrameID.style.marginBottom = '0';
window.scrollTo(0, mytop);
} else {
iFrameID.style.height = evt.data + 'px';
iFrameID.style.marginBottom = '0';
}
}
}
}
if (window.addEventListener) {
// For standards-compliant web browsers
window.addEventListener('message', adatta, false);
}
else {
window.attachEvent('onmessage', adatta);
}
</script>
<script>
var cumulativeOffset = function(element) {
var top = 0, left = 0;
do {
top += element.offsetTop || 0;
left += element.offsetLeft || 0;
element = element.offsetParent;
} while(element);
return {
top: top,
left: left
};
};
window.onscroll = function() {contatta()};
function contatta() {
var mySite = document.documentElement;
var mySiteTop = (window.pageYOffset || mySite.scrollTop) - (mySite.clientTop || 0);
var iframeP = document.getElementById('iFramePrenota');
if (document.contains(iframeP)) {
var iframeTop= cumulativeOffset(iframeP).top;
var segui=0;
if ((mySiteTop - iframeTop)>0) {
segui=mySiteTop - iframeTop + 150;
iframe = document.getElementById('iFramePrenota');
iframe.contentWindow.postMessage(segui, 'https://nomebrevedellocale.prenota-web.it');
}
}
};
function adatta (evt) {
var offsetH=200;
if (evt.origin !== 'https://nomebrevedellocale.prenota-web.it') {
message = 'Dominio non autorizzato';
}
else {
var iFrameID = document.getElementById('iFramePrenota');
if(iFrameID) {
iFrameID.style.border = '0';
iFrameID.style.width = '100%';
iFrameID.style.marginBottom = '1500px';
var myHeight=evt.data.toString();
if (evt.data=='top') {
var mytop=iFrameID.getBoundingClientRect().top + window.pageYOffset - iFrameID.ownerDocument.documentElement.clientTop - offsetH;
document.documentElement.scrollTop = mytop;
iFrameID.style.marginBottom = '0';
} else if (myHeight.substring(0, 6)=='middle') {
var mytop=iFrameID.getBoundingClientRect().top + window.pageYOffset - iFrameID.ownerDocument.documentElement.clientTop - offsetH;
iFrameID.style.height = window.innerHeight + 'px';
iFrameID.style.marginBottom = '0';
window.scrollTo(0, mytop);
} else {
iFrameID.style.height = evt.data + 'px';
iFrameID.style.marginBottom = '0';
}
}
}
}
if (window.addEventListener) {
// For standards-compliant web browsers
window.addEventListener('message', adatta, false);
}
else {
window.attachEvent('onmessage', adatta);
}
</script>