• 正在查找将来过去时的官方设定集?不如看看万界大百科吧!
  • 《将来过去时》第一部分 现在 魔科纪元的少年少女 即将正式发布!
  • 让我偷偷看一眼小鱼君的博客……
  • 服务器已成功迁移到 阿里云(杭州)

MediaWiki:Common.js

来自小鱼君和他的朋友们
机智的小鱼君讨论 | 贡献2020年10月20日 (二) 02:43的版本 ([InPageEdit] 没有编辑摘要)

注意:在保存以后,您必须绕过浏览器缓存才能看到所作出的改变。

  • 谷歌浏览器(Google Chrome)- Windows:按下“Ctrl”键然后按 F5。OS X系统:同时按⌘ Cmd⇧ Shift键之后按R键。
  • Safari - 按住⇧ Shift键然后点击工具栏中重新载入键。
  • 火狐(Firefox)- Windows:按住Ctrl键然后按F5。OS X系统:同时按⌘ Cmd⇧ Shift键之后按R键。
  • Internet Explorer:按住Ctrl键然后按F5(或者点击“刷新”按钮)。

/** ssi-modal **/
mw.loader.load('https://cdn.bootcss.com/ssi-modal/1.0.27/js/ssi-modal.min.js');
mw.loader.load('https://cdn.bootcss.com/ssi-modal/1.0.27/styles/ssi-modal.min.css', 'text/css');

/** 外部链接 **/
mw.loader.using(['oojs-ui-windows', 'oojs-ui-core'],
  function () {
    $('a.external').each(function () {
      var href = $(this).attr('href'),
        href1 = href.split('/')[2];
      if (href1.substring(href1.length - 8) === 'wjghj.cn') return;
      $(this).click(function (e) {
        e.preventDefault();
        OO.ui.confirm('你确定要访问这个外部链接吗: ' + href).done(function (confirmed) {
          if (confirmed) {
            location.href = href;
          }
        });
      });
    });
  });

/** Code Prettyprint **/
$(function () {
  var pagename = mw.config.get('wgPageName');
  if (pagename.substr(pagename.length - 3, 3) === '.js') {
    $('#mw-content-text pre').addClass('prettyprint lang-js linenums');
  } else if (pagename.substr(pagename.length - 4, 4) === '.css') {
    $('#mw-content-text pre').addClass('prettyprint lang-css linenums');
  }
  mw.loader.load('https://common.wjghj.cn/js/prettify');
  mw.loader.load('https://common.wjghj.cn/css/prettify', 'text/css');
});

/**
 * ECharts
 * Put ECharts on wiki pages
 * Apache licenses https://www.echartsjs.com
 **/
!(function () {
  if ($('.echarts, .ECharts, .Echarts').length < 1) return
  mw.loader.load('https://cdn.jsdelivr.net/npm/[email protected]/dist/echarts.min.js').then(function () {
    $('.echarts, .ECharts, .Echarts').each(function (_, item) {
      var $this = $(item),
        option = eval('(' + $this.text() + ')')
      echarts.init($this.get(0)).setOption(option)
    })
  })
});

/** Global script (gtag.js) - Google Analytics **/
mw.loader.load('https://www.googletagmanager.com/gtag/js?id=UA-148909815-1');
$(window).load(function () {
  window.dataLayer = window.dataLayer || [];
  function gtag() { dataLayer.push(arguments); }
  gtag('js', new Date());

  gtag('config', 'UA-148909815-1');
});

/** 方便上传相册缺少的图片 **/
$('.gallery .thumb').prepend(function () {
  var galleryfile = $(this).text();
  if (galleryfile == '') {
    return;
  } else {
    $(this).html('<a href="https://common.wjghj.cn/index.php?title=Special:Upload&wpDestFile=' + galleryfile + '" class="new" target="_blank">点击上传<br/>' + galleryfile + '</a>')
  }
});

/** In page dialog **/
$(function () {
  var DialogId,
    BtnId,
    NextId,
    LastId;
  $('.ipd').html(function () {
    DialogId = this.dataset.dialogid;
    if (DialogId != '1') {
      $(this).hide();
    }
  });
  $('.ipd-next-btn').click(function () {
    BtnId = this.dataset.btnid;
    LastId = this.dataset.lastid;
    if (LastId === 'last') {
      $('#game-selector').show(300);
      $(this).css('color', 'green');
    } else {
      BtnId = parseInt(BtnId);
      NextId = ++BtnId;
      $(this).css('color', 'green');
      $('.ipd[data-dialogid=' + NextId + ']').show(300);
    }
  });
});

/** Game saver **/
$('.GameSaver').html(function () {
  var game, time, user, title, page;
  var wgUserName = mw.config.get('wgUserName');
  if (wgUserName == '' || wgUserName == null) {
    unlogin = true;
  } else {
    user = 'User:' + wgUserName;
  }
  game = this.dataset.game;
  time = this.dataset.time;
  title = this.dataset.title;
  page = this.dataset.page;
  $(this).html('<input type=button class="save" value="保存游戏"/>&nbsp;&nbsp;<input type=button class="load" value="读取存档"/>');
  if (unlogin) {
    $('.GameSaver .load').click(function () { alert('无法读取存档,请登录后再试'); });
  } else {
    $('.GameSaver .load').click(function () { location.href = '/wiki/' + user + '/gamesave/' + game });
  }
  $('.GameSaver .save').click(function () {
    if (unlogin) {
      $('.GameSaver .save').unbind().attr({ 'value': '存档失败,请登录后再试', 'disabled': '' });
      return;
    }
    var note = prompt('有什么要备注的吗?', '无');
    if (note === null || note === 'null') {
      return;
    }
    $('.GameSaver .save').attr('value', 'SILI努力帮你存档中…');
    new mw.Api().post({
      action: 'edit',
      title: user + '/gamesave/' + game,
      summary: '\/*' + title + ' | ' + time + '*\/新增游戏' + game + '存档',
      appendtext: '\n== ' + title + ' | ' + time + ' ==\n*游戏:[[Game:' + game + ']]\n*时间:' + time + '\n*[[' + page + '|继续游戏]]\n*备注:' + note + '\n\n',
      token: mw.user.tokens.get('editToken')
    })
      .done(function () {
        $('.GameSaver .save').unbind().attr({ 'value': '存档完毕!', 'disabled': '' });
      })
      .fail(function () {
        alert('啊哦,存档失败了!\n1)请检查您的网络连接?\n2)您是否没有登录?\n3)刷新页面再试?');
        $('.GameSaver .save').attr('value', '重试');
      });
  });
});

/** 顶部公告 **/
function siteNoticeScroll(obj, interval) {
  $(obj).animate({
    height: 'show',
    paddingTop: 'show',
    marginTop: 'show',
    paddingBottom: 'show',
    marginBottom: 'show',
  });
  setInterval(function () {
    $(obj).find('ul:first').animate({
      marginTop: '-25px'
    },
      300,
      function () {
        $(this).css({
          marginTop: '0px',
        }).find('li:first').appendTo(this);
      });
  },
    interval);
}
siteNoticeScroll('.siteNoticeScroll', 5000);

/** 头像系统 **/
$(function () {
  $('#personal h2').prepend($('<a>', {
    href: '/wiki/Special:Uploadavatar',
    class: 'user-avatar-link',
  }).click(function (e) {
    href = $(this).attr('href');
    e.preventDefault();
    if ($(window).width() > 1100) {
      location.href = href;
    }
  }).append($('<img>', {
    src: '/avatar/' + mw.config.get('wgUserName'),
    class: 'user-avatar'
  })));
  $('.mw-userlink').before(function () {
    var user = $(this).attr('title'),
      avatar = $('<img>', {
        src: '/avatar/' + user,
        class: 'user-avatar'
      });
    return avatar;
  });
});

/**
 * Matomo track
 */
// !(function () {
//   var _paq = window._paq || [];
//   /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
//   _paq.push(['trackPageView']);
//   _paq.push(['enableLinkTracking']);
//   var u = "//common.wjghj.cn/piwik/";
//   _paq.push(['setTrackerUrl', u + 'matomo.php']);
//   _paq.push(['setSiteId', '1']);
//   var d = document, g = d.createElement('script'), s = d.getElementsByTagName('script')[0];
//   g.type = 'text/javascript'; g.async = true; g.defer = true; g.src = u + 'matomo.js'; s.parentNode.insertBefore(g, s);
// })();

//ALL CLEAR