/*
* HTML Parser By John Resig (ejohn.org)
* Original code by Erik Arvidsson, Mozilla Public License
* http://erik.eae.net/simplehtmlparser/simplehtmlparser.js
*
* // Use like so:
* HTMLParser(htmlString, {
* start: function(tag, attrs, unary) {},
* end: function(tag) {},
* chars: function(text) {},
* comment: function(text) {}
* });
*
* // or to get an XML string:
* HTMLtoXML(htmlString);
*
* // or to get an XML DOM Document
* HTMLtoDOM(htmlString);
*
* // or to inject into an existing document/DOM node
* HTMLtoDOM(htmlString, document);
* HTMLtoDOM(htmlString, document.body);
*
*/
// Regular Expressions for parsing tags and attributes
var startTag = /^<(\w+)((?:\s+[\w\-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/,
endTag = /^<\/(\w+)[^>]*>/,
attr = /([\w\-]+)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))?/g;
// Empty Elements - HTML 4.01
var empty = makeMap( "area,base,basefont,br,col,frame,hr,img,input,isindex,link,meta,param,embed" );
// Block Elements - HTML 4.01
var block = makeMap( "address,applet,blockquote,button,center,dd,del,dir,div,dl,dt,fieldset,form,frameset,hr,iframe,ins,isindex,li,map,menu,noframes,noscript,object,ol,p,pre,script,table,tbody,td,tfoot,th,thead,tr,ul" );
// Inline Elements - HTML 4.01
var inline = makeMap( "a,abbr,acronym,applet,b,basefont,bdo,big,br,button,cite,code,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,textarea,tt,u,var" );
// Elements that you can, intentionally, leave open
// (and which close themselves)
var closeSelf = makeMap( "colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr" );
// Attributes that have their values filled in disabled="disabled"
var fillAttrs = makeMap( "checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected" );
// Special Elements (can contain anything)
var special = makeMap( "script,style" );
var HTMLParser = function( html, handler ) {
var index, chars, match, stack = [], last = html;
stack.last = function() {
return this[ this.length - 1 ];
};
while( html ) {
chars = true;
// Make sure we're not in a script or style element
if( !stack.last() || !special[ stack.last() ] ) {
// Comment, DOCTYPE INCLUDED
if( html.indexOf( "<!--" ) == 0 ) {
index = html.indexOf( "-->" );
if( index >= 0 ) {
if( handler.comment )
handler.comment( html.substring( 4, index ) );
html = html.substring( index + 3 );
chars = false;
}
//doctype
} else if( html.indexOf( "<!" ) == 0 ) {
index = html.indexOf( ">" );
if( index >= 0 ) {
if( handler.doctype )
handler.doctype( html.substring( 2, index ) );
html = html.substring( index + 1 );
chars = false;
}
//script
} else if( html.indexOf( "<script" ) == 0 ) {
index = html.indexOf( "</script>" );
if( index >= 0 ) {
if( handler.script )
handler.script( html.substring( 7, index ) );
html = html.substring( index + 9 );
chars = false;
}
//style
} else if( html.indexOf( "<style>" ) == 0 ) {
index = html.indexOf( "</style>" );
if( index >= 0 ) {
if( handler.style )
handler.style( html.substring( 7, index ) );
html = html.substring( index + 8 );
chars = false;
}
// end tag
} else if( html.indexOf( "</" ) == 0 ) {
match = html.match( endTag );
if( match ) {
html = html.substring( match[ 0 ].length );
match[ 0 ].replace( endTag, parseEndTag );
chars = false;
}
// start tag
} else if( html.indexOf( "<" ) == 0 ) {
match = html.match( startTag );
if( match ) {
html = html.substring( match[ 0 ].length );
match[ 0 ].replace( startTag, parseStartTag );
chars = false;
}
}
if( chars ) {
index = html.indexOf( "<" );
var text = index < 0 ? html : html.substring( 0, index );
html = index < 0 ? "" : html.substring( index );
if( handler.chars )
handler.chars( text );
}
} else {
html = html.replace( new RegExp( "(.*)<\/" + stack.last() + "[^>]*>" ), function( all, text ) {
text = text.replace( /<!--(.*?)-->/g, "$1" )
.replace( /<!\[CDATA\[(.*?)]]>/g, "$1" );
if( handler.chars )
handler.chars( text );
return "";
});
parseEndTag( "", stack.last() );
}
if( html == last )
throw "Parse Error: " + html;
last = html;
}
// Clean up any remaining tags
parseEndTag();
function parseStartTag( tag, tagName, rest, unary ) {
if( block[ tagName ] ) {
while( stack.last() && inline[ stack.last() ] ) {
parseEndTag( "", stack.last() );
}
}
if( closeSelf[ tagName ] && stack.last() == tagName ) {
parseEndTag( "", tagName );
}
unary = empty[ tagName ] || !!unary;
if( !unary )
stack.push( tagName );
if( handler.start ) {
var attrs = [];
rest.replace( attr, function( match, name ) {
var value = arguments[ 2 ] ? arguments[ 2 ] :
arguments[ 3 ] ? arguments[ 3 ] :
arguments[ 4 ] ? arguments[ 4 ] :
fillAttrs[ name ] ? name : "";
attrs[ name ] = value;//value.replace(/(^|[^\\])"/g, '$1\\\"') //";
//attrs.push({
// name: name,
// value: value,
// escaped: value.replace(/(^|[^\\])"/g, '$1\\\"') //"
//});
});
if( handler.start )
handler.start( tagName, attrs, unary );
}
}
function parseEndTag( tag, tagName ) {
// If no tag name is provided, clean shop
if( !tagName )
var pos = 0;
// Find the closest opened tag of the same type
else
for( var pos = stack.length - 1;pos >= 0;pos-- )
if( stack[ pos ] == tagName )
break;
if( pos >= 0 ) {
// Close all the open elements, up the stack
for( var i = stack.length - 1;i >= pos;i-- )
if( handler.end )
handler.end( stack[ i ] );
// Remove the open elements from the stack
stack.length = pos;
}
}
};
var HTMLtoXML = function( html ) {
var results = "";
HTMLParser( html, {
start: function( tag, attrs, unary ) {
results += "<" + tag;
for( var i = 0;i < attrs.length;i++ )
results += " " + attrs[ i ].name + '="' + attrs[ i ].escaped + '"';
results += ( unary ? "/" : "" ) + ">";
},
end: function( tag ) {
results += "</" + tag + ">";
},
chars: function( text ) {
results += text;
},
comment: function( text ) {
results += "<!--" + text + "-->";
}
});
return results;
};
// this.HTMLtoDOM = function( html, doc ) {
// // There can be only one of these elements
// var one = makeMap( "html,head,body,title" );
// // Enforce a structure for the document
// var structure = {
// link: "head",
// base: "head"
// };
// if( !doc ) {
// if( typeof DOMDocument != "undefined" )
// doc = new DOMDocument();
// else if( typeof document != "undefined" && document.implementation && document.implementation.createDocument )
// doc = document.implementation.createDocument( "", "", null );
// else if( typeof ActiveX != "undefined" )
// doc = new ActiveXObject( "Msxml.DOMDocument" );
// } else
// doc = doc.ownerDocument ||
// doc.getOwnerDocument && doc.getOwnerDocument() ||
// doc;
// var elems = [],
// documentElement = doc.documentElement ||
// doc.getDocumentElement && doc.getDocumentElement();
// // If we're dealing with an empty document then we
// // need to pre-populate it with the HTML document structure
// if( !documentElement && doc.createEleme
没有合适的资源?快使用搜索试试~ 我知道了~
微信小程序源码 知乎日报1(学习版)
共69个文件
png:45个
js:10个
wxss:6个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 197 浏览量
2022-06-19
08:07:51
上传
评论
收藏 810KB RAR 举报
温馨提示
微信小程序源码 知乎日报1(学习版)微信小程序源码 知乎日报1(学习版)微信小程序源码 知乎日报1(学习版)微信小程序源码 知乎日报1(学习版)微信小程序源码 知乎日报1(学习版)微信小程序源码 知乎日报1(学习版)微信小程序源码 知乎日报1(学习版)微信小程序源码 知乎日报1(学习版)微信小程序源码 知乎日报1(学习版)微信小程序源码 知乎日报1(学习版)微信小程序源码 知乎日报1(学习版)微信小程序源码 知乎日报1(学习版)微信小程序源码 知乎日报1(学习版)微信小程序源码 知乎日报1(学习版)微信小程序源码 知乎日报1(学习版)微信小程序源码 知乎日报1(学习版)微信小程序源码 知乎日报1(学习版)微信小程序源码 知乎日报1(学习版)微信小程序源码 知乎日报1(学习版)微信小程序源码 知乎日报1(学习版)微信小程序源码 知乎日报1(学习版)微信小程序源码 知乎日报1(学习版)微信小程序源码 知乎日报1(学习版)微信小程序源码 知乎日报1(学习版)微信小程序源码 知乎日报1(学习版)微信小程序源码 知乎日报1(学习版)微信小程序源码 知乎日报1(学习版)微信小程序源码 知乎日报1(
资源推荐
资源详情
资源评论
收起资源包目录
微信小程序源码 知乎日报1(学习版).rar (69个子文件)
知乎日报1
5.png 90KB
ZhiHuDaliy
requests
api.js 2KB
request.js 3KB
images
share_alipay.png 2KB
folder_active.png 210B
share_plus.png 1KB
star_white.png 2KB
user_active.png 628B
format_quote.png 274B
list.png 111B
refresh.png 598B
folder.png 206B
list_active.png 110B
insert_emoticon.png 904B
thumb_up.png 438B
download_active.png 313B
download.png 300B
share_qzone.png 2KB
thumb_up_active.png 423B
favorite.png 541B
send.png 234B
file_download.png 184B
share_qq.png 2KB
logo.jpg 29KB
setting_active.png 418B
insert_comment.png 328B
star.png 855B
home.png 471B
star_yellow.png 4KB
user.png 608B
fav.png 3KB
share_weibo.png 2KB
comment.png 217B
setting.png 3KB
logo.png 3KB
favorite_outline.png 310B
share_pengyouquan.png 2KB
share.png 647B
star_active.png 687B
fav_active.png 428B
plus.png 120B
app.json 342B
pages
index
index.js 8KB
index.wxss 3KB
index.wxml 5KB
comment
comment.wxss 764B
comment.js 3KB
comment.json 42B
comment.wxml 2KB
splash
splash.wxml 307B
splash.js 991B
splash.wxss 599B
detail
detail.js 4KB
detail.wxss 3KB
detail.wxml 6KB
setting
setting.js 349B
setting.wxml 1KB
setting.wxss 744B
app.wxss 2KB
app.js 1KB
utils
util.js 7KB
htmlParseUtil.js 23KB
1.png 283KB
6.png 51KB
2.png 86KB
7.png 67KB
4.png 89KB
8.png 20KB
3.png 51KB
共 69 条
- 1
资源评论
金枝玉叶9
- 粉丝: 124
- 资源: 7640
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功