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

“MediaWiki:Gadget-NotifyWhenCopy.js”的版本间的差异

来自小鱼君和他的朋友们
([InPageEdit] 没有编辑摘要)
(机智的小鱼君移动页面MediaWiki:NotifyWhenCopy.jsMediaWiki:Gadget-NotifyWhenCopy.js
 
(未显示同一用户的18个中间版本)
第1行: 第1行:
 
$(function() {
 
$(function() {
    // Start
+
    mw.loader.load('https://common.wjghj.cn/js/shake');
 +
 
 +
   if (mw.config.get('wgUserGroups').includes('sysop')) return; // 不对管理员生效
 
    (new mw.Api()).get({
 
    (new mw.Api()).get({
 
     action: 'query',
 
     action: 'query',
第34行: 第36行:
 
     // Output
 
     // Output
 
     $(window).on('copy',function() {
 
     $(window).on('copy',function() {
      $modal.notify('warning',{
+
      if ($('.copy-notify').length < 1) {
      title: '',
+
      ssi_modal.notify('',{
      content: finalMsg,
+
       title: '',
      closeAfter: {time:5000},
+
       content: finalMsg,
      position: 'top left',
+
       closeAfter: {time:60},
      })
+
       position: 'top center',
 +
       sizeClass: 'full',
 +
       className: 'copy-notify',
 +
       onClose: function() {
 +
        $(window).unbind('scroll');
 +
        $('body').css('margin-top','');
 +
       }
 +
      });
 +
      if($(window).scrollTop() < 1) $('body').css('margin-top',$('.copy-notify').height()+70);
 +
      $(window).bind('scroll',function(){
 +
       console.log($(window).scrollTop());
 +
       if ($(window).scrollTop() < 1) {
 +
        $('body').css('margin-top',$('.copy-notify').height()+70);
 +
       } else {
 +
        $('body').css('margin-top','');
 +
       }
 +
      });
 +
      } else {
 +
      $('.copy-notify').shake(4,10,200);
 +
     }
 
     });
 
     });
  
第45行: 第66行:
 
   // End
 
   // End
 
});
 
});
 
/**
 
$('body').on('copy', function (e) {
 
  if (typeof window.getSelection == 'undefined') return; //IE8 or earlier...
 
 
 
  var body_element = document.getElementsByTagName('body')[0];
 
  var selection = window.getSelection();
 
 
 
  //if the selection is short let's not annoy our users
 
  if (('' + selection).length < 100) return;
 
 
  //if loged in as admin
 
  //if () return;
 
 
  //create a div outside of the visible area
 
  //and fill it with the selected text
 
  var newdiv = document.createElement('div');
 
  newdiv.style.position = 'absolute';
 
  newdiv.style.left = '-99999px';
 
  body_element.appendChild(newdiv);
 
  newdiv.appendChild(selection.getRangeAt(0).cloneContents());
 
 
 
  //we need a <pre> tag workaround
 
  //otherwise the text inside 'pre' loses all the line breaks!
 
  if (selection.getRangeAt(0).commonAncestorContainer.nodeName == 'PRE') {
 
   newdiv.innerHTML = '<pre>' + newdiv.innerHTML + '</pre>';
 
  }
 
 
 
  newdiv.innerHTML += '<br/><br/>以上内容来自:<a href="'+location.href+'">'+location.href+'</a> (小鱼君和他的朋友们)<br/>除非另有声明,本网站所有文字内容采用<a href="https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh_CN">知识共享(Creative Commons) 署名-非商业性使用-相同方式共享 4.0</a>授权,转载请注明出处!。';
 
   
 
  selection.selectAllChildren(newdiv);
 
  window.setTimeout(function () { body_element.removeChild(newdiv); }, 200);
 
});
 
**/
 

2020年10月5日 (一) 10:47的最新版本

$(function() {
    mw.loader.load('https://common.wjghj.cn/js/shake');

    if (mw.config.get('wgUserGroups').includes('sysop')) return; // 不对管理员生效
    (new mw.Api()).get({
      action: 'query',
      meta: 'allmessages',
      ammessages: 'License-description|Copy-notify|Copy-notify/page/'+wgPageName,
      amlang: mw.config.get('wgUserLanguage') || mw.config.get('wgContentLanguage')
    }).done(function(data) {
      // Variables
      var licenseDescriptionMsg = data.query.allmessages[0]['*'],
          customMsg = data.query.allmessages[1]['*'],
          customPageMsg = data.query.allmessages[2]['*'],
 
          defaultMsg =  '你刚刚复制了<span style="font-weight:bold;">' + wgSiteName + '</span>上的内容!'+ licenseDescriptionMsg + '<br/>转载时请注明出处:<span style="font-style:italic;font-weight:bold;">' + decodeURIComponent(location.href) + '</span>',
 
          finalMsg;
 
      // Get custom messages
      if ( customPageMsg !== undefined && customPageMsg !== '-' && customPageMsg !== '' ) {
        finalMsg = customPageMsg
          .replace( /\$sitename/ig , wgSiteName )
          .replace( /\$url/ig , decodeURIComponent(location.href) )
          .replace( /\$license/ig , licenseDescriptionMsg );
      } else if ( customMsg !== undefined && customMsg !== '-' && customMsg !== '' ) {
        finalMsg = customMsg
          .replace( /\$sitename/ig , wgSiteName )
          .replace( /\$url/ig , decodeURIComponent(location.href) )
          .replace( /\$license/ig , licenseDescriptionMsg );
      } else {
        finalMsg = defaultMsg;
      }
      var debugMsg = 'defaultMsg is:<br/>' + defaultMsg + '<hr/>customMsg is:<br/>' + customMsg + '<hr/>customPageMsg is:<br/>' + customPageMsg + '<hr/>finalMsg is:<br/>' + finalMsg;
 
      // Output
      $(window).on('copy',function() {
        if ($('.copy-notify').length < 1) {
          ssi_modal.notify('',{
            title: '',
            content: finalMsg,
            closeAfter: {time:60},
            position: 'top center',
            sizeClass: 'full',
            className: 'copy-notify',
            onClose: function() {
              $(window).unbind('scroll');
              $('body').css('margin-top','');
            }
          });
          if($(window).scrollTop() < 1) $('body').css('margin-top',$('.copy-notify').height()+70);
          $(window).bind('scroll',function(){
            console.log($(window).scrollTop());
            if ($(window).scrollTop() < 1) {
              $('body').css('margin-top',$('.copy-notify').height()+70);
            } else {
              $('body').css('margin-top','');
            }
          });
        } else {
          $('.copy-notify').shake(4,10,200);
        }
      });

    });
  // End
});