Skip to content

Commit d929a57

Browse files
authored
Merge pull request #108 from amplitude/error-check-load-snippet
check sdk loaded properly before running queued functions
2 parents 58ab2d1 + 25d6264 commit d929a57

File tree

4 files changed

+12
-9
lines changed

4 files changed

+12
-9
lines changed

amplitude-snippet.min.js

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
(function(e,t){var n=e.amplitude||{_q:[],_iq:{}};var r=t.createElement("script");r.type="text/javascript";
22
r.async=true;r.src="https://d24n15hnbwhuhn.cloudfront.net/libs/amplitude-3.4.0-min.gz.js";
3-
r.onload=function(){e.amplitude.runQueuedFunctions()};var i=t.getElementsByTagName("script")[0];
4-
i.parentNode.insertBefore(r,i);function s(e,t){e.prototype[t]=function(){this._q.push([t].concat(Array.prototype.slice.call(arguments,0)));
5-
return this}}var o=function(){this._q=[];return this};var a=["add","append","clearAll","prepend","set","setOnce","unset"];
6-
for(var u=0;u<a.length;u++){s(o,a[u])}n.Identify=o;var c=function(){this._q=[];return this;
7-
};var p=["setProductId","setQuantity","setPrice","setRevenueType","setEventProperties"];
8-
for(var l=0;l<p.length;l++){s(c,p[l])}n.Revenue=c;var d=["init","logEvent","logRevenue","setUserId","setUserProperties","setOptOut","setVersionName","setDomain","setDeviceId","setGlobalUserProperties","identify","clearUserProperties","setGroup","logRevenueV2","regenerateDeviceId","logEventWithTimestamp","logEventWithGroups"];
3+
r.onload=function(){if(e.amplitude.runQueuedFunctions){e.amplitude.runQueuedFunctions();
4+
}else{console.log("[Amplitude] Error: could not load SDK")}};var i=t.getElementsByTagName("script")[0];
5+
i.parentNode.insertBefore(r,i);function o(e,t){e.prototype[t]=function(){this._q.push([t].concat(Array.prototype.slice.call(arguments,0)));
6+
return this}}var s=function(){this._q=[];return this};var a=["add","append","clearAll","prepend","set","setOnce","unset"];
7+
for(var u=0;u<a.length;u++){o(s,a[u])}n.Identify=s;var c=function(){this._q=[];return this;
8+
};var l=["setProductId","setQuantity","setPrice","setRevenueType","setEventProperties"];
9+
for(var p=0;p<l.length;p++){o(c,l[p])}n.Revenue=c;var d=["init","logEvent","logRevenue","setUserId","setUserProperties","setOptOut","setVersionName","setDomain","setDeviceId","setGlobalUserProperties","identify","clearUserProperties","setGroup","logRevenueV2","regenerateDeviceId","logEventWithTimestamp","logEventWithGroups"];
910
function v(e){function t(t){e[t]=function(){e._q.push([t].concat(Array.prototype.slice.call(arguments,0)));
1011
}}for(var n=0;n<d.length;n++){t(d[n])}}v(n);n.getInstance=function(e){e=(!e||e.length===0?"$default_instance":e).toLowerCase();
1112
if(!n._iq.hasOwnProperty(e)){n._iq[e]={_q:[]};v(n._iq[e])}return n._iq[e]};e.amplitude=n;

src/amplitude-snippet.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
as.type = 'text/javascript';
55
as.async = true;
66
as.src = 'https://d24n15hnbwhuhn.cloudfront.net/libs/amplitude-3.4.0-min.gz.js';
7-
as.onload = function() {window.amplitude.runQueuedFunctions();};
7+
as.onload = function() {if(window.amplitude.runQueuedFunctions) {window.amplitude.runQueuedFunctions();} else {console.log('[Amplitude] Error: could not load SDK');}};
88
var s = document.getElementsByTagName('script')[0];
99
s.parentNode.insertBefore(as, s);
1010
function proxy(obj, fn) {

test/browser/amplitudejs.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
as.type = 'text/javascript';
88
as.async = true;
99
as.src = '/amplitude.js';
10-
as.onload = function() {window.amplitude.runQueuedFunctions();};
10+
as.onload = function() {if(window.amplitude.runQueuedFunctions) {window.amplitude.runQueuedFunctions();} else {console.log('[Amplitude] Error: could not load SDK');}};
1111
var s = document.getElementsByTagName('script')[0];
1212
s.parentNode.insertBefore(as, s);
1313
function proxy(obj, fn) {
@@ -47,6 +47,7 @@
4747
window.amplitude = amplitude;
4848
})(window, document);
4949

50+
5051
var setUserId = function() {
5152
var userId = prompt('Input userId', 'user01');
5253
amplitude.setUserId(userId);

test/browser/amplitudejs2.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
as.type = 'text/javascript';
88
as.async = true;
99
as.src = '/amplitude.js';
10-
as.onload = function() {window.amplitude.runQueuedFunctions();};
10+
as.onload = function() {if(window.amplitude.runQueuedFunctions) {window.amplitude.runQueuedFunctions();} else {console.log('[Amplitude] Error: could not load SDK');}};
1111
var s = document.getElementsByTagName('script')[0];
1212
s.parentNode.insertBefore(as, s);
1313
function proxy(obj, fn) {
@@ -47,6 +47,7 @@
4747
window.amplitude = amplitude;
4848
})(window, document);
4949

50+
5051
var setUserId = function() {
5152
var userId = prompt('Input userId', 'user01');
5253
amplitude.setUserId(userId);

0 commit comments

Comments
 (0)