Skip to content

Instantly share code, notes, and snippets.

@davidohlin
Last active December 6, 2019 09:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save davidohlin/f40043e76e887c7232924eaf771bca62 to your computer and use it in GitHub Desktop.
Save davidohlin/f40043e76e887c7232924eaf771bca62 to your computer and use it in GitHub Desktop.
Genomgång av Intercoms init
<script>
window.intercomSettings = {
// Definiera intercomSettings på window.
app_id: 'APP_ID',
name: "Jane Doe", // Full name
email: "customer@example.com", // 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