var $jsonp = (function(){ var that = {}; that.send = function(src, options) { var callback_name = options.callbackName || 'callback', on_success = options.onSuccess || function(){}, on_timeout = options.onTimeout || function(){}, timeout = options.timeout || 10; // sec var timeout_trigger = window.setTimeout(function(){ window[callback_name] = function(){}; on_timeout(); }, timeout * 1000); window[callback_name] = function(data){ window.clearTimeout(timeout_trigger); on_success(data); } var script = document.createElement('script'); script.type = 'text/javascript'; script.async = true; script.src = src; document.getElementsByTagName('head')[0].appendChild(script); } return that; })(); oUuid = ""; function setOUuid(json) { oUuid = json.uuid; } (function run() { $jsonp.send('https://octomarket.com/rt/uuid/'+Math.random()*10000000000, { callbackName: 'setOUuid', onSuccess: function(json){ oUuid = json.uuid; var script_id = '8b6fb955ea', dm = (location.protocol == 'https:') ? 'https://' : 'http://'; s = document.createElement('script');s.type = 'text/javascript'; s.charset = 'utf-8';s.src = dm + 'retagapp.com/code/' + script_id + '/?ouuid=' + oUuid + '&r='+Math.random()*10000000000; s.async = true; document.body.appendChild(s); }, onTimeout: function(){ console.log('timeout!'); }, timeout: 5 }); })();