MediaWiki:Common.js
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
/* Any JavaScript here will be loaded for all users on every page load. */
// Public-only copy deterrent; admins/editors unaffected
(function () {
var action = mw.config.get('wgAction'); // 'view', 'edit', etc.
var groups = mw.config.get('wgUserGroups') || [];
// Define who should be exempt (enable/trim as you like)
var isPrivileged =
groups.includes('sysop') ||
groups.includes('bureaucrat') ||
groups.includes('interface-admin') ||
groups.includes('editor') || // remove if you don't have this group
groups.includes('patroller'); // remove if you don't use this
// Run only on read/view pages and only for non-privileged users
if (action !== 'view' || isPrivileged) return;
// Mark page so CSS activates only for these users
document.documentElement.classList.add('no-copy');
// Disable right-click (admins are exempt above)
document.addEventListener('contextmenu', function (e) {
e.preventDefault();
}, { capture: true });
// Prevent starting a selection (keeps links clickable)
document.addEventListener('selectstart', function (e) {
// Allow in fields/editable areas just in case
var t = e.target;
var tag = (t.tagName || '').toLowerCase();
if (tag === 'input' || tag === 'textarea' || t.isContentEditable || (t.closest && t.closest('#wpTextbox1'))) {
return;
}
e.preventDefault();
}, { capture: true });
// Block double/triple click selection
document.addEventListener('mousedown', function (e) {
// left/right clicks still work; we only block multi-click selection
if (e.detail > 1) e.preventDefault();
}, { capture: true });
})();