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

MediaWiki:Gadget-tikuExtractFromDOM.js:修订间差异

MediaWiki界面页面
无编辑摘要
(导入1个版本)
 
(未显示同一用户的8个中间版本)
第1行: 第1行:
getDataFromDOM()
function getDataFromDOM(){
function getDataFromDOM(){
var start = new Date().getTime()*1
     var data = $('.data')
     var data = $('.data')
     var dataLength = data.length
     var dataLength = data.length
第13行: 第11行:
     , errorsOrder:[]
     , errorsOrder:[]
     , errors:{}
     , errors:{}
    , repeatSource: {}
     }
     }
     for(var i=0;i<dataLength;i++){
     for(var i=0;i<dataLength;i++){
第41行: 第40行:
         timuList.order.push({id:i,isError:isError})
         timuList.order.push({id:i,isError:isError})
     }
     }
    console.log('json加载完成时间:'+(new Date().getTime()*1-start))
    //检查有无重复source
    for(var key in timuList.timu){
    var type = timuList.timu[key].dataJSON.type
    var source = timuList.timu[key].dataJSON.source
    for(var key2 in timuList.timu){
    //console.log(key, key2, timuList.timu[key2].dataJSON)
    if(key!==key2 && type === timuList.timu[key2].dataJSON.type  && source === timuList.timu[key2].dataJSON.source ){
    if(timuList.repeatSource[key]!==undefined){
    timuList.repeatSource[key].push(key2)
    }else{
    timuList.repeatSource[key] = [key2]
    }
    }
    }
    }
    console.log('重复检查完成时间:'+(new Date().getTime()*1-start))
     console.log(timuList)
     console.log(timuList)
sDomTimuList(timuList)
sDomTimuList(timuList)
第49行: 第65行:
htmlObj.children().each(
htmlObj.children().each(
                 function (i,v) {
                 function (i,v) {
                     console.log(v)
                     //console.log(v)
                     var innerHTML = entityToString(v)
                     var innerHTML = entityToString(v)
                    console.log(innerHTML)
                     var innerHTMLString  = ''
                     var innerHTMLString  = ''
                     innerHTMLString = innerHTML.replace(/"/g,'\\"')
                     innerHTMLString = innerHTML.replace(/"/g,'\\"')
                    console.log(innerHTMLString)
                     htmlText = htmlText.replace(innerHTML,innerHTMLString)
                     htmlText = htmlText.replace(innerHTML,innerHTMLString)
                 }
                 }
             )
             )
     }
     }
    console.log(htmlText)
return htmlText
return htmlText
}
}

2023年6月29日 (四) 15:03的最新版本

function getDataFromDOM(){
	var start = new Date().getTime()*1
    var data = $('.data')
    var dataLength = data.length
    var timuList = {
    	order: []
    	,timuCount:0
    	, timuOrder:[]
    	, timu:{}
    	, errorsCount:0
    	, errorsOrder:[]
    	, errors:{}
    	, repeatSource: {}
    }
    for(var i=0;i<dataLength;i++){
    	var dataObj = $(data[i])
    	var dataHTML = dataObj.html()
    	var dataText = replaceHTMLobj(dataHTML, dataObj )
        var dataJSON = {}
        var isError = false
        try{
        	dataJSON = $.parseJSON(dataText)
        	timuList.timuCount += 1
        	timuList.timuOrder.push(i)
        	timuList.timu[i] = {
        		dataJSON: dataJSON
        		, dataHTML: dataHTML
        		, dataText: dataText
        	}
        }catch(e){
        	isError = true
        	timuList.errorsCount += 1
        	timuList.errorsOrder.push(i)
        	timuList.errors[i]={
        		info:e
        		, dataHTML: dataHTML
        		, dataText: dataText
        	}
        }
        timuList.order.push({id:i,isError:isError})
    }
    console.log('json加载完成时间:'+(new Date().getTime()*1-start))
    //检查有无重复source
    for(var key in timuList.timu){
    	var type = timuList.timu[key].dataJSON.type
    	var source = timuList.timu[key].dataJSON.source
    	for(var key2 in timuList.timu){
    		//console.log(key, key2, timuList.timu[key2].dataJSON)
    	 	if(key!==key2 && type === timuList.timu[key2].dataJSON.type  && source === timuList.timu[key2].dataJSON.source ){
    	 		if(timuList.repeatSource[key]!==undefined){
    	 			timuList.repeatSource[key].push(key2)
    	 		}else{
    	 			timuList.repeatSource[key] = [key2]
    	 		}
    	 	}
    	 }
    }
    console.log('重复检查完成时间:'+(new Date().getTime()*1-start))
    console.log(timuList)
	sDomTimuList(timuList)
}

function replaceHTMLobj(htmlText,htmlObj){
	if(htmlObj.children().length>0){
		htmlObj.children().each(
                function (i,v) {
                    //console.log(v)
                    var innerHTML = entityToString(v)
                    var innerHTMLString  = ''
                    innerHTMLString = innerHTML.replace(/"/g,'\\"')
                    htmlText = htmlText.replace(innerHTML,innerHTMLString)
                }
            )
    }
	return htmlText
}

function sDomTimuList(obj){
	sessionStorage.setItem("DOMTimuList", JSON.stringify(obj));
}
function gDomTimuList(){
	return JSON.parse(sessionStorage.getItem("DOMTimuList"));
}