diff --git a/src/wrapper.js b/src/wrapper.js index 10ed72b..8faa0c6 100644 --- a/src/wrapper.js +++ b/src/wrapper.js @@ -30,11 +30,10 @@ function getRandL () { // script loader new Promise(resolve => { - const d = new Image() - document.body.prepend(d) - resolve(d) -}).then(d => { - const stackN = 10 + const id = '' + Math.random(); + w[id] = resolve; + + const stackN = 9 let loaderIntro = '' for (let i = 0; i < stackN; i++) { loaderIntro += `(function ${getRandL()}(){` @@ -42,10 +41,12 @@ new Promise(resolve => { const loaderOutro = '})()'.repeat(stackN) const mockUrl = "https://c.amazon-adsystem.com/aax2/apstag.js" + Function(`${loaderIntro}const d=new Image();window['${id}'](d);delete window['${id}'];document.body.prepend(d)${loaderOutro}//# sourceURL=${mockUrl}`)() +}).then(d => { d.style.display = 'none'; d.src = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=='; d.once = false; - d.setAttribute('onload', `const self=this;${loaderIntro}if(self.once)return;self.once=true;self.remove();const GM=window['${gmId}'];delete window['${gmId}'];(` + function a () { + d.setAttribute('onload', `if(this.once)return;this.once=true;this.remove();const GM=window['${gmId}'];delete window['${gmId}'];(` + function a () { /** script code here */ -}.toString() + `)()${loaderOutro}//# sourceURL=${mockUrl}`)}) \ No newline at end of file +}.toString() + ')()')}) \ No newline at end of file