123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- /*
- [Discuz!] (C)2001-2099 Comsenz Inc.
- This is NOT a freeware, use is subject to license terms
- $Id: autoloadpage.js 33246 2013-05-09 02:07:17Z kamichen $
- */
- (function() {
- var autopbn = $('autopbn');
- var nextpageurl = autopbn.getAttribute('rel').valueOf();
- var curpage = parseInt(autopbn.getAttribute('curpage').valueOf());
- var totalpage = parseInt(autopbn.getAttribute('totalpage').valueOf());
- var picstyle = parseInt(autopbn.getAttribute('picstyle').valueOf());
- var forumdefstyle = parseInt(autopbn.getAttribute('forumdefstyle').valueOf());
- picstyle = picstyle && !forumdefstyle;
- var autopagenum = 0;
- var maxpage = (curpage + autopagenum) > totalpage ? totalpage : (curpage + autopagenum);
- var loadstatus = 0;
- autopbn.onclick = function() {
- var oldloadstatus = loadstatus;
- loadstatus = 2;
- autopbn.innerHTML = '正在加载, 请稍后...';
- getnextpagecontent();
- loadstatus = oldloadstatus;
- };
- if(autopagenum > 0) {
- window.onscroll = function () {
- var curtop = Math.max(document.documentElement.scrollTop, document.body.scrollTop);
- if(curtop + document.documentElement.clientHeight + 500 >= document.documentElement.scrollHeight && !loadstatus) {
- loadstatus = 1;
- autopbn.innerHTML = '正在加载, 请稍后...';
- setTimeout(getnextpagecontent, 1000);
- }
- };
- }
- function getnextpagecontent() {
- if(curpage + 1 > totalpage) {
- window.onscroll = null;
- autopbn.style.display = 'none';
- return;
- }
- if(loadstatus != 2 && curpage + 1 > maxpage) {
- autopbn.innerHTML = '下一页 »';
- if(curpage + 1 > maxpage) {
- window.onscroll = null;
- }
- return;
- }
- curpage++;
- var url = nextpageurl + '&t=' + parseInt((+new Date()/1000)/(Math.random()*1000));
- var x = new Ajax('HTML');
- x.get(url, function (s) {
- s = s.replace(/\n|\r/g, '');
- if(s.indexOf("id=\"autopbn\"") == -1) {
- $("autopbn").style.display = "none";
- window.onscroll = null;
- }
- if(!picstyle) {
- var tableobj = $('threadlisttableid');
- var nexts = s.match(/\<tbody id="normalthread_(\d+)"\>(.+?)\<\/tbody>/g);
- for(i in nexts) {
- if(i == 'index' || i == 'lastIndex') {
- continue;
- }
- var insertid = nexts[i].match(/<tbody id="normalthread_(\d+)"\>/);
- if(!$('normalthread_' + insertid[1])) {
- var newbody = document.createElement('tbody');
- tableobj.appendChild(newbody);
- var div = document.createElement('div');
- div.innerHTML = '<table>' + nexts[i] + '</table>';
- tableobj.replaceChild(div.childNodes[0].childNodes[0], tableobj.lastChild);
- }
- }
- } else {
- var nexts = s.match(/\<li style="width:\d+px;" id="picstylethread_(\d+)"\>(.+?)\<\/li\>/g);
- for(i in nexts) {
- var insertid = nexts[i].match(/id="picstylethread_(\d+)"\>/);
- if(!$('picstylethread_' + insertid[1])) {
- $('threadlist_picstyle').innerHTML += nexts[i];
- }
- }
- }
- var pageinfo = s.match(/\<span id="fd_page_bottom"\>(.+?)\<\/span\>/);
- nextpageurl = nextpageurl.replace(/&page=\d+/, '&page=' + (curpage + 1));
- $('fd_page_bottom').innerHTML = pageinfo[1];
- if(curpage + 1 > totalpage) {
- autopbn.style.display = 'none';
- } else {
- autopbn.innerHTML = '下一页 »';
- }
- loadstatus = 0;
- });
- }
- })();
|