打开/关闭菜单
Toggle preferences menu
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。

MediaWiki:Gadget-tikuCcommon.js

MediaWiki界面页面

注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。

  • Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5Ctrl-R(Mac为⌘-R
  • Google Chrome:Ctrl-Shift-R(Mac为⌘-Shift-R
  • Internet Explorer或Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5
  • Opera:Ctrl-F5
function sWebPageResultSync(obj){
	sessionStorage.setItem("timu-webPageResultSync", JSON.stringify(obj));
}
function gWebPageResultSync(){
	return JSON.parse(sessionStorage.getItem("timu-webPageResultSync"));
}
function gWebPageTimuSettings(){
    return JSON.parse(sessionStorage.getItem("timu-webPageTimuSettings"));
}
function sWebPageTimuSettings(obj){
    sessionStorage.setItem("timu-webPageTimuSettings", JSON.stringify(obj));
}
// 解压
function unzip(b64Data) {
	console.log(b64Data)
    var strData = atob(b64Data);
    console.log(strData)
    var charData = strData.split('').map(function (x) {
        return x.charCodeAt(0);
    });
    var binData = new Uint8Array(charData);
    var data = pako.inflate(binData);
    strData = String.fromCharCode.apply(null, new Uint16Array(data));
    return decodeURIComponent(strData);
}
// 压缩
function zip(str) {
    var binaryString = pako.gzip(encodeURIComponent(str), {to: 'string'})
    return btoa(binaryString);
}
//==========================
//==========DOM操作=========
//==========================
// // 填入radio
// // value 是 string
function fillRadio(id, value){
    console.log('#'+prefixDic.radioId+id+'-'+value)
    var target = $('#'+prefixDic.radioId+id+'-'+value)
    target.attr('checked','checked')
}
// // 填入checkbox
// value 是 array
function fillCheckbox(id,value){
    for(var i=0;i<value.length;i++){
        $('#'+prefixDic.checkBoxId+id+'-'+value[i]).attr('checked','checked')
    }
}
// // 填入Select
// value 是 array
function fillSelect(id,value){
    for(var i=0;i<value.length;i++){
        $('#'+prefixDic.selectId + id+'-'+i).val(value[i])
    }
}
// // 填入text
function fillText(id, value){
    for(var i=0;i<value.length;i++){
        $('#'+prefixDic.textInputId+id+'-'+i).children('input').val(value[i])
    }
}

// // 将题目放在模板加载位置
function addAfterIDData(id,content) {
    var data = $('.data')
    content.insertAfter(data[id])
}
// // 渲染题目
function render(id,type,obj,parent,isAfter){
    parent =parent !==undefined ?parent : '#subjectContainer-'+type
    if(typeof(parent)!=='object'){
        parent = $(parent)
    }
    if(isObjExist(parent)){
        if(isAfter){
            parent.after(obj)
        }else {
            obj.appendTo(parent)
        }
    }else {
        addAfterIDData(id,obj)
    }
}

//基础函数
//判断函数
function isObjExist(t){
    return $(t).length>0
}

function isInArray (arr, value) {
  for (var i = 0; i < arr.length; i++) {
    if (value === arr[i]) {
      return true
    }
  }
  return false
}
//数据查询函数
function dicLen(dic){
    var count=0;
    for(var key in dic){
        // console.log(key+'='+dic[key]);
        count++;
    }
    return count
}
//html操作函数
function entityToString(entity){
    var div=$('<div></div>');
    div.html(entity)
    var res=div.html();
    // console.log(entity,'->',res);
    return res;
}
//获取map中键的列表
function mapKeysList(map){
    return Array.from(map.keys())
}
//获取字符串真实长度
function getStrLength(str) {
    //1、定义计数器
    var len=0,code=0;
    //2、遍历该字符串
    for(var i=0;i<str.length;i++)
    {
        code=str.charCodeAt(i)
        if (code>=0&&code<=127) {
            len+=1;
        }else{
            len+=2;
        }
    }
    return len
}
//数据清理
//去除字典中的空值
function filterEmptyEntries(dic){
    return Object.fromEntries(
        Object.entries(dic).filter(function(key, value){return value !== null && value !== undefined && value.length !== 0})
    )

}
//排序字典并返回一个map对象
function sortDicByKey(dic){
    var sort = Object.keys(dic).sort()
    var map = new Map()
    for(var i=0;i<sort.length;i++){
        map.set(sort[i],dic[sort[i]])
    }
    return map
}
function locateTo(id){
	setTimeout(function(){
    $("html,body").animate({scrollTop:$("#"+id).position().top},500)	
    },250)
}