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

MediaWiki:Common.js

来自小鱼君和他的朋友们
机智的小鱼君讨论 | 贡献2021年5月20日 (四) 04:20的版本 ([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
          }
        })
    })
  })
})

/** Global script (gtag.js) - Google Analytics **/
!(function() {
  var $script = $('<script>', {
    src: 'https://www.googletagmanager.com/gtag/js?id=UA-148909815-1',
  })
  $script.appendTo('body')

  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', 12 * 1000)

/** 头像系统 **/
$(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
  })
})

/**
 * Cloudflare Web Analytics
 */
$('body').append(
  '<!-- Cloudflare Web Analytics --><script defer src="https://static.cloudflareinsights.com/beacon.min.js" data-cf-beacon=\'{"token": "bcc7ebd8bc4442feb16d89e12674080b"}\'></script><!-- End Cloudflare Web Analytics -->'
)