Skip to main content
IperChat
Prova gratis EN
Accedi

Il widget

Controllare il widget da JavaScript

L'API window.IperChat: opzioni di init, open, close, destroy, la promise ready e gli eventi. Per single-page app, caricamento al clic e pulsanti personalizzati.

Lo script del widget definisce window.IperChat appena viene eseguito. Con l’attributo data-iperchat-auto-init il widget parte da solo. Senza, lo avvii tu con IperChat.init() quando vuoi.

Avviare il widget

  • Avvio automatico. Con data-iperchat-auto-init il widget parte quando la pagina è stata letta. Uno script aggiunto dopo, per esempio da una single-page app o da un caricamento al clic, parte appena viene eseguito.
  • Da JavaScript. Togli data-iperchat-auto-init e chiama init():
window.IperChat.init({
  tenant_id: 'IL_TUO_TENANT_ID',
  language: 'it',
  position: 'bottom-right',
})

Il widget parte una sola volta per pagina, quindi un secondo init() viene ignorato. Per riavviarlo con altre opzioni chiama prima destroy().

Opzioni

Ogni opzione ha un attributo corrispondente per lo snippet con avvio automatico.

OpzioneAttributoValoreDefault
tenant_iddata-tenant-idIl tuo Tenant IDObbligatorio
languagedata-languageit, en, es o auto (il browser del visitatore, altrimenti inglese)it
positiondata-positionbottom-right, bottom-left o inlinebottom-right
containerIddata-container-idID dell’elemento che ospita la chat inlineNessuno
origin_websitedata-origin-websiteUn ID origin da “Configurazioni Agenti”Il tuo Tenant ID
loadOnOpendata-load="on-open"true: non si carica nulla finché la chat non viene aperta (dettagli)false
launcherTextdata-launcher-textTesto del pulsante prima che si carichino le impostazioni (con loadOnOpen)Solo l’icona della chat
theme.primaryColor, theme.secondaryColordata-primary-color, data-secondary-colorColori esadecimali come #174de6Le impostazioni del pannello
theme.fontFamilyNessunoUna famiglia di font CSS già disponibile sulla tua paginaLe impostazioni del pannello, altrimenti Inter
disableFirebaseAuthNessunotrue: il widget resta anonimo e non usa mai lo spazio di accessofalse

Colori e font impostati nel pannello hanno la precedenza su theme.

Aprire e chiudere

window.IperChat.open()
window.IperChat.close()
window.IperChat.destroy() // rimuove il widget dalla pagina

open() funziona anche prima che il widget abbia finito di caricarsi: la chat si apre appena il widget è pronto. Con loadOnOpen è proprio open() a caricare la chat.

Sapere quando è pronto

await window.IperChat.ready

// oppure
window.addEventListener('iperchat:ready', () => {
  // il widget è sulla pagina
})

IperChat.ready è una promise che si risolve quando il widget è sulla pagina e ne mostra il pulsante, o la chat inline. Dopo destroy() si risolve di nuovo dopo il successivo init(). Nello stesso momento parte l’evento iperchat:ready su window.

Eventi

Evento su windowInviato daSignificato
iperchat:readyIl widgetIl widget è pronto
iperchat:openTeApri la chat
iperchat:closeTeChiudi la chat

Inviare iperchat:open o iperchat:close ha lo stesso effetto di open() e close(), per il codice che non raggiunge window.IperChat:

window.dispatchEvent(new CustomEvent('iperchat:open'))

Caricare lo script al clic

Così non si carica nulla da IperChat finché il visitatore non clicca il tuo pulsante:

<button id="open-chat" type="button">Scrivici</button>
<script>
  document.getElementById('open-chat').addEventListener('click', function () {
    if (window.IperChat) {
      window.IperChat.open()
      return
    }
    var script = document.createElement('script')
    script.src = 'https://widget.iperchat.ai/iperchat.iife.js'
    script.onload = function () {
      window.IperChat.init({ tenant_id: 'IL_TUO_TENANT_ID', language: 'it' })
      window.IperChat.open()
    }
    document.body.appendChild(script)
  })
</script>

Se il tuo sito invia una Content-Security-Policy, usa la versione di questo loader pronta per il nonce in Content Security Policy.

Integrazioni precedenti

window.GriefAgentChat è un alias di window.IperChat, e l’attributo data-griefagent-auto-init funziona ancora. Restano per le integrazioni fatte prima del cambio di nome; nel codice nuovo usa IperChat.

Prossimi passi