MediaWiki:Common.js: Difference between revisions
MediaWiki interface page
More actions
No edit summary |
No edit summary |
||
| Line 2: | Line 2: | ||
/* Ad Block. */ | /* Ad Block. */ | ||
'use strict'; | |||
function detectAdblock() { | function detectAdblock() { | ||
var adblockTests = { | |||
// https://github.com/uBlockOrigin/uAssets/blob/master/filters/filters-2022.txt | // https://github.com/uBlockOrigin/uAssets/blob/master/filters/filters-2022.txt | ||
uBlockOrigin: { | uBlockOrigin: { | ||
url: 'https://incolumitas.com/data/pp34.js?sv=', | url: 'https://incolumitas.com/data/pp34.js?sv=', | ||
id: '837jlaBksSjd9jh' | id: '837jlaBksSjd9jh' | ||
}, | }, | ||
// https://github.com/easylist/easylist/blob/master/easylist/easylist_general_block.txt | // https://github.com/easylist/easylist/blob/master/easylist/easylist_general_block.txt | ||
adblockPlus: { | adblockPlus: { | ||
url: 'https://incolumitas.com/data/neutral.js?&ad_height=', | url: 'https://incolumitas.com/data/neutral.js?&ad_height=', | ||
id: 'hfuBadsf3hFAk' | id: 'hfuBadsf3hFAk' | ||
} | } | ||
}; | }; | ||
function canLoadRemoteScript(obj) { | function canLoadRemoteScript(obj) { | ||
return new Promise(function(resolve, reject) { | return new Promise(function (resolve, reject) { | ||
var script = document.createElement('script'); | var script = document.createElement('script'); | ||
script.onload = function() { | script.onload = function () { | ||
if (document.getElementById(obj.id)) { | if (document.getElementById(obj.id)) { | ||
resolve(false); | resolve(false); | ||
| Line 28: | Line 30: | ||
}; | }; | ||
script.onerror = function() { | script.onerror = function () { | ||
resolve(true); | resolve(true); | ||
}; | }; | ||
| Line 37: | Line 39: | ||
} | } | ||
return new Promise(function(resolve, reject) { | return new Promise(function (resolve, reject) { | ||
var promises = [canLoadRemoteScript(adblockTests.uBlockOrigin), canLoadRemoteScript(adblockTests.adblockPlus)]; | |||
Promise.all(promises).then((results) | Promise.all(promises).then(function (results) { | ||
resolve({ | resolve({ | ||
uBlockOrigin: results[0], | uBlockOrigin: results[0], | ||
adblockPlus: results[1] | adblockPlus: results[1] | ||
}); | }); | ||
}).catch((err) | }).catch(function (err) { | ||
reject(err); | reject(err); | ||
}); | }); | ||
| Line 54: | Line 53: | ||
} | } | ||
detectAdblock().then((res) | detectAdblock().then(function (res) { | ||
alert("Hello Works!"); | alert("Hello Works!"); | ||
}); | }); | ||
Revision as of 05:51, 6 October 2022
/* Any JavaScript here will be loaded for all users on every page load. importScript('User:Rillke/bigChunkedUpload.js');*/
/* Ad Block. */
'use strict';
function detectAdblock() {
var adblockTests = {
// https://github.com/uBlockOrigin/uAssets/blob/master/filters/filters-2022.txt
uBlockOrigin: {
url: 'https://incolumitas.com/data/pp34.js?sv=',
id: '837jlaBksSjd9jh'
},
// https://github.com/easylist/easylist/blob/master/easylist/easylist_general_block.txt
adblockPlus: {
url: 'https://incolumitas.com/data/neutral.js?&ad_height=',
id: 'hfuBadsf3hFAk'
}
};
function canLoadRemoteScript(obj) {
return new Promise(function (resolve, reject) {
var script = document.createElement('script');
script.onload = function () {
if (document.getElementById(obj.id)) {
resolve(false);
} else {
resolve(true);
}
};
script.onerror = function () {
resolve(true);
};
script.src = obj.url;
document.body.appendChild(script);
});
}
return new Promise(function (resolve, reject) {
var promises = [canLoadRemoteScript(adblockTests.uBlockOrigin), canLoadRemoteScript(adblockTests.adblockPlus)];
Promise.all(promises).then(function (results) {
resolve({
uBlockOrigin: results[0],
adblockPlus: results[1]
});
}).catch(function (err) {
reject(err);
});
});
}
detectAdblock().then(function (res) {
alert("Hello Works!");
});