Jump to content

MediaWiki:Common.js

From IoT Colabs Wiki

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)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
/* Any JavaScript here will be loaded for all users on every page load. */
$(document).ready(function() {
    $('.mw-highlight').each(function() {
        var $this = $(this);
        // Create button
        var $button = $('<button class="copy-button"><svg aria-hidden="true" class="MSS8xf" fill="currentColor" height="18px" viewBox="0 -960 960 960" width="18px"><path d="M360-240q-33 0-56.5-23.5T280-320v-480q0-33 23.5-56.5T360-880h360q33 0 56.5 23.5T800-800v480q0 33-23.5 56.5T720-240H360Zm0-80h360v-480H360v480ZM200-80q-33 0-56.5-23.5T120-160v-560h80v560h440v80H200Zm160-240v-480 480Z"></path></svg></button>');
        $button.css({
            'position': 'absolute',
            'top': '5px',
            'right': '5px',
            'font-size': '0.8em',
            'cursor': 'pointer'
        });
        
        // Add button to container
        $this.css('position', 'relative').append($button);
        
        // Copy function
        $button.click(function() {
            var text = $this.find('pre').text();
            navigator.clipboard.writeText(text).then(function() {
                $button.text('Copied!');
                setTimeout(function() { $button.text('<svg aria-hidden="true" class="MSS8xf" fill="currentColor" height="18px" viewBox="0 -960 960 960" width="18px"><path d="M360-240q-33 0-56.5-23.5T280-320v-480q0-33 23.5-56.5T360-880h360q33 0 56.5 23.5T800-800v480q0 33-23.5 56.5T720-240H360Zm0-80h360v-480H360v480ZM200-80q-33 0-56.5-23.5T120-160v-560h80v560h440v80H200Zm160-240v-480 480Z"></path></svg>'); }, 2000);
            });
        });
    });
});