Last active
December 6, 2019 09:02
-
-
Save davidohlin/f40043e76e887c7232924eaf771bca62 to your computer and use it in GitHub Desktop.
Genomgång av Intercoms init
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<script> | |
window.intercomSettings = { | |
// Definiera intercomSettings på window. | |
app_id: 'APP_ID', | |
name: "Jane Doe", // Full name | |
email: "[email protected]", // Email address | |
created_at: 1312182000 // Signup date as a Unix timestamp | |
}; | |
</script> | |
<script> | |
(function(){ | |
// Cachea window-objektet | |
var w = window; | |
// Hämta Intercom från window-objektet | |
var ic = w.Intercom | |
// Kolla om Intercom redan är definierat | |
if (typeof ic === "function") { | |
// Ingen aning om vad detta gör | |
ic('reattach_activator'); | |
// Uppdatera inställningar eftersom de kan ändras? | |
ic('update', w.intercomSettings); | |
} else { | |
// Cachea document-objektet | |
var d = document; | |
// Skapa funktion "i" som senare ska sättas på window som Intercom | |
var i = function() { | |
// Skapa en tom funktion, "c". Förstår inte varför "arguments" behöver | |
// defineras här. Kan vara att det blir en funktion då? | |
i.c(arguments); | |
}; | |
// Skapa en tom array "Q" på funktionen | |
i.q = []; | |
// Omdefiniera "c" till en funktion | |
i.c = function(args) { | |
// Pusha argument till array "q" | |
i.q.push(args); | |
}; | |
// Sett window.Intercom till funktion "i" | |
w.Intercom = i; | |
// Skapa funktion "l" som skapar en script-element med intercoms | |
// widget-script och lägger in elementet innan den första script-taggen i DOMen. | |
var l = function() { | |
// Skapa ett script-element | |
var s = d.createElement('script'); | |
// Gör inställningar | |
s.type = 'text/javascript'; | |
// Viktigt, vi vill inte blocka rendering | |
s.async = true; | |
// Skicka med APP_ID | |
s.src = 'https://widget.intercom.io/widget/' + APP_ID; | |
// Hitta den första script-taggen i DOMen | |
var x = d.getElementsByTagName('script')[0]; | |
// Lägg den skapade script-taggen först | |
x.parentNode.insertBefore(s,x); | |
} | |
// Kolla om attachEvent är definierat på window (=< IE8) och använd metoden | |
// isåfall, använd annars addEventListener. Se https://stackoverflow.com/a/30915025 | |
if (w.attachEvent) { | |
// Skapa script-taggen när window har laddat | |
w.attachEvent('onload',l); | |
} else { | |
// Skapa script-taggen när window har laddat | |
w.addEventListener('load',l,false); | |
} | |
} | |
})(); | |
</script> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment