JS 가 쓴 HTML 해석, 텍스트 내용 가 져 오기
3228 단어 JavaScriptjs해석 하 다.
function HtmlDecoder(){
var converters=new Map();// , Element 。 Map , C# Dictionary。
this.RegisterConverter=function(tagName,conv){// ,
if (converters.ContainsKey(tagName))
{
var index=converters.IndexOfKey(tagName);// tagName ,
converters.RemoveAt(index);
if(conv)converters.Add(tagName,conv);
}
else
{
if(conv)converters.Add(tagName,conv);
}
}
this.Decode=function(self){return function(ele){//
if(ele.style&&ele.style["display"]=="none")return "";// Element “”
var items=ParseElementChildren(ele);// “ ” , Element
var s="";
if(!items||items.length<1){// “tagName” ,
var conv=GetConverter(ele.tagName);
s=conv(ele);
}
else{ //
for(var i=0;i0){
items[items.length]=html.substr(pos,index-pos);
pos=index;
}
items[items.length]=ele.childNodes[i];
pos+=outer.length;
}
}
if(pos
위 코드 에 사 용 된 맵 함수:
function Map()
{
var keys=[];
var values=[];
this.Count=0;
var self=this;
this.ContainsKey=function(key){
return self.IndexOfKey(key)>-1;
}
this.ContainsValue=function(value){
return self.IndexOfValue(value)>-1;
}
this.IndexOfKey=function(key){
for(var i=0;iindex;i--){
keys[i]=keys[i-1];
}
keys[index]=key;
for(var i=values.length;i>index;i--){
values[i]=values[i-1];
}
values[index]=value;
self.Count++;
}
this.Add=function(key,value){
self.Insert(self.Count,key,value);
}
this.RemoveAt=function(index){
if(index<0||index>=self.Count)throw new Error("Index out of range");
for(var i=index;i
전재 출처 를 밝 혀 주 십시오:http://blog.csdn.net/yueguangzhiyuan/article/details/17418701
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
기초 정리 - 1문자 (String) 숫자 (Number) 불린 (Boolean) null undefined 심볼 (Symbol) 큰정수 (BigInt) 따옴표로 묶어 있어야 함 Not-A-Number - 숫자 데이터 / 숫자로 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.