×

Welcome to TagMyCode

Please login or create account to add a snippet.
0
0
 
0
Language: Javascript
Posted by: Matthew Speicher
Added: Jun 22, 2016 5:37 PM
Modified: Jun 22, 2016 5:37 PM
Views: 16
  1. (function(window, undefined){
  2.     if(window.msWidgetDrawn === undefined || window.msWidgetDrawn === null){
  3.         window.msWidgetDrawn = true;
  4.         var msWidgetSrc = "//";
  5.         var msLoaders = document.querySelectorAll("script[src*='loader.js']");
  6.         var hostname = msLoaders[0].getAttribute('src').toString();
  7.         hostname = hostname.substr(hostname.indexOf(':')+1, 5);
  8.         if(hostname.substr(hostname.indexOf(':')+1, 5) === '//dev'){
  9.             msWidgetSrc = "//";
  10.         }
  11.         var msWidget = document.createElement('script');
  12.         msWidget.type = 'text/javascript';
  13.         msWidget.src = msWidgetSrc+'/msWidget.js';
  14.         if(msLoaders[0].hasAttribute('data-target-id')){
  15.             msWidget.setAttribute('data-target-id', msLoaders[0].getAttribute('data-target-id'));
  16.         }else if(msLoaders[0].hasAttribute('data-target-class')){
  17.             msWidget.setAttribute('data-target-class', msLoaders[0].getAttribute('data-target-class'));
  18.         }
  19.         msWidget.setAttribute('defer', 'true');
  20.         function init() {
  21.             // quit if this function has already been called
  22.             if (arguments.callee.done) return;
  23.             // flag this function so we don't do the same thing twice
  24.             arguments.callee.done = true;
  25.             // kill the timer
  26.             if (_timer) clearInterval(_timer);
  27.             // do stuff
  28.             document.body.appendChild(msWidget);
  29.         };
  30.         /* for Mozilla/Opera9 */
  31.         if (document.addEventListener) {
  32.             document.addEventListener("DOMContentLoaded", init, false);
  33.         }
  34.         /* for Internet Explorer */
  35.         /*@cc_on @*/
  36.         /*@if (@_win32)
  37.          document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
  38.          var script = document.getElementById("__ie_onload");
  39.          script.onreadystatechange = function() {
  40.             if (this.readyState == "complete") {
  41.                 init(); // call the onload handler
  42.             }
  43.          };
  44.          /*@end @*/
  45.         /* for Safari */
  46.         if (/WebKit/i.test(navigator.userAgent)) { // sniff
  47.             var _timer = setInterval(function() {
  48.                 if (/loaded|complete/.test(document.readyState)) {
  49.                     init(); // call the onload handler
  50.                 }
  51.             }, 10);
  52.         }
  53.         /* for other browsers */
  54.         window.onload = init;
  55.     }
  56. })(window);