Site Notice

hello, world

MediaWiki:Gadget-ShortUrl.js

From Project-EPB Commons

Invoke this: https://common.wjghj.cn/

Note: After saving, 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: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Go to Menu → Settings (Opera → Preferences on a Mac) and then to Privacy & security → Clear browsing data → Cached images and files.
/**
 * @name Short URL
 * @author 机智的小鱼君
 * 
 * @description Get the "fake" short link provided by MediaWiki.
 *              Solve the very long link of the pages that name contain non-ASCII words.
 */
!(function () {
  window.shortUrl = window.shortUrl || '';
  // 缓存 mw 变量
  var config = mw.config.get();
  // 判断是否存在文章ID
  if (config.wgArticleId > 0) {
    shortUrl = config.wgServer + '/-/' + config.wgArticleId;
    // 在文章后插入段落
    $('#firstHeading').after(
      $('<div>', { class: 'shortUrl-block' }).append(
        $('<span>', { class: 'shortUrl-description' }).append(
          $('<span>', { text: '您还可以通过此链接分享页面:' }),
          $('<strong>', { text: shortUrl + ' ' }),
          $('<a>', { text: '复制', href: 'javascript:;' }).click(function () {
            // 创建 input 元素,选中复制,然后销毁
            var $this = $(this),
              surlInput = $('<input>', { id: 'shortUrl-copy', value: shortUrl, style: 'z-index: -1; opacity: 0; position: absolute; left: -200vw;', readonly: 'readonly' });
            $this.append(surlInput);
            surlInput.select();
            document.execCommand('copy');
            surlInput.remove();
            $this.text('已复制!');
            setTimeout(function () {
              $this.text('复制');
            }, 1500);
          })
        )
      )
    );
  }
  // 将短链接替换进文章
  $('.shortUrl').text(shortUrl);
  $('.shortUrl-link').html(
    $('<a>', { href: shortUrl, text: shortUrl })
  );
}());