forked from eligrey/async-document-write
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathasync-document-write.min.js
2 lines (2 loc) · 1.55 KB
/
async-document-write.min.js
1
2
/* @source http://purl.eligrey.com/github/async-document-write/blob/master/async-document-write.js*/
(function(){try{0()}catch(u){var f=u}var q="fileName",j="stack",s=j+"trace";if(q in f||s in f||j in f){var v=document,k=v.createElement("a"),l=!1,h=!l,g=[],i=v.write,b=function(e){return v.getElementsByTagName(e)},d=b("head")[0],t,m=function(){if(h){h=l;var w=t.to,x=0,e=g.length;for(;x<e;x++){t.to=g[x++];t(g[x]);delete t.to}g=null;t.to=w}},o=function(e){var x,w=function(y,z){x=z};if(q in e){x=e[q]}else{if(s in e){e[s].replace(/Line \d+ of .+ script (.*)/gm,w)}else{if(j in e){e[j].replace(/at (.*)/gm,w);x=x.replace(/:\d+:\d+$/,"")}}}return x},p=Array.prototype.slice,a=Object.prototype.toString,n,r,c;if(v.addEventListener&&v.removeEventListener){n=v.addEventListener;r=v.removeEventListener;c=function(e){r.call(v,e.type,c,l);m()};n.call(v,"DOMContentLoaded",c,l);n.call(v,"load",c,l)}else{if(v.attachEvent&&v.detachEvent){n=v.attachEvent;r=v.detachEvent;c=function(){r.call(v,"onload",c)};n.call(v,"onload",c)}}t=v.write=function(){var D=p.call(arguments).join(""),z=b("body")[0],E=t.to;if(!z){g.push(E,D);return}if(E){k.href=o(E);var e=k.href,x=b("script"),w=v.createElement("span");w.innerHTML=D;for(var B=0,A=x.length;B<A;B++){k.href=x.item(B).src;if(k.href===e){var y=x.item(B),C=y;while(C=C.parentNode){if(C===d){z.insertBefore(w,z.firstChild);return}}y.parentNode.insertBefore(w,y);return}}}else{i.apply(v,arguments)}};v.writeln=function(){t.apply(this,p.call(arguments).concat("\n"))};t.START="try{0()}catch(e){document.write.to=e}";t.END="delete document.write.to"}}());