Difference between revisions of "MediaWiki:Common.js"
Jump to navigation
Jump to search
(Add Yandex.) |
|||
Line 69: | Line 69: | ||
} | } | ||
// == /filter-list-by-form.js =================================================== | // == /filter-list-by-form.js =================================================== | ||
+ | |||
+ | // == Yandex Metrica ==================================================== | ||
+ | if (mw.config.get('wgPageName') == 'Germany/Banking/Savings') { | ||
+ | |||
+ | (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; | ||
+ | m[i].l=1*new Date(); | ||
+ | for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }} | ||
+ | k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) | ||
+ | (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym"); | ||
+ | |||
+ | ym(90857344, "init", { | ||
+ | clickmap:true, | ||
+ | trackLinks:true, | ||
+ | accurateTrackBounce:true | ||
+ | }); | ||
+ | |||
+ | } | ||
+ | // == /Yandex Metrica =================================================== |
Revision as of 17:39, 20 October 2022
/* Any JavaScript here will be loaded for all users on every page load. */ // == Google Analytics ========================================================= function cyrb53(str) { var seed = 0; var h1 = 0xdeadbeef ^ seed, h2 = 0x41c6ce57 ^ seed; for (var i = 0, ch; i < str.length; i++) { ch = str.charCodeAt(i); h1 = Math.imul(h1 ^ ch, 2654435761); h2 = Math.imul(h2 ^ ch, 1597334677); } h1 = Math.imul(h1 ^ h1 >>> 16, 2246822507) ^ Math.imul(h2 ^ h2 >>> 13, 3266489909); h2 = Math.imul(h2 ^ h2 >>> 16, 2246822507) ^ Math.imul(h1 ^ h1 >>> 13, 3266489909); return 4294967296 * (2097151 & h2) + (h1 >>> 0); }; var clientIP = "{$_SERVER['REMOTE_ADDR']}"; var validityInterval = Math.round (new Date() / 1000 / 3600 / 24 / 4); var clientIDSource = clientIP + ";" + window.location.host + ";" + navigator.userAgent + ";" + navigator.language + ";" + validityInterval; var clientIDHashed = cyrb53(clientIDSource).toString(16); (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-158655997-1', { 'storage': 'none', 'clientId': clientIDHashed }); ga('set', 'anonymizeIp', true); ga('send', 'pageview'); /** * Function that captures a click on an outbound link in Analytics. * This function takes a valid URL string as an argument, and uses that URL string * as the event label. Setting the transport method to 'beacon' lets the hit be sent * using 'navigator.sendBeacon' in browser that support it. */ var captureOutboundLink = function(url) { ga('send', 'event', 'external', 'click', url, { 'transport': 'beacon', 'hitCallback': function(){ window.open(url); } }); }; // Add click event to all external links. const buttons = document.querySelectorAll('.mw-parser-output .external'); for (i = 0; i < buttons.length; ++i) { const button = buttons[i]; button.addEventListener('click', function(event) { captureOutboundLink(event.currentTarget.href); } ); } // == /Google Analytics ========================================================= // == filter-list-by-form.js ==================================================== if (mw.config.get('wgPageName') == 'Germany/Banking/Current') { mw.loader.getScript('/resources.custom/filter-list-by-form.js') .then(function () { const filterListByForm = new FilterListByForm('form.form-list-filter-js', 'table.form-list-filter-js tr.filterable'); const dataToContent = new DataToContent('table.form-list-filter-js tr', 'td.{key}'); }, function (e) { mw.log.error(e.message); }); } // == /filter-list-by-form.js =================================================== // == Yandex Metrica ==================================================== if (mw.config.get('wgPageName') == 'Germany/Banking/Savings') { (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; m[i].l=1*new Date(); for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }} k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym"); ym(90857344, "init", { clickmap:true, trackLinks:true, accurateTrackBounce:true }); } // == /Yandex Metrica ===================================================