Tieba Preload

贴吧预加载,自动加载下一页内容,同时附带消灭贴吧自带 Lazy Load 功能

当前为 2014-05-06 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Tieba Preload
  3. // @version 1.3.1
  4. // @description 贴吧预加载,自动加载下一页内容,同时附带消灭贴吧自带 Lazy Load 功能
  5. // @match http://tieba.baidu.com/*
  6. // @include http://tieba.baidu.com/*
  7. // @exclude http://tieba.baidu.com/*tp=1*
  8. // @exclude http://tieba.baidu.com/*tab=*
  9. // @author 864907600cc
  10. // @icon http://1.gravatar.com/avatar/147834caf9ccb0a66b2505c753747867
  11. // @run-at document-end
  12. // @grant GM_registerMenuCommand
  13. // @namespace https://greasyfork.org/users/141
  14. // ==/UserScript==
  15.  
  16. // 贴子判断方式由 kookxiang 提供
  17. // 本脚本基于 GPLv3 协议开源 http://www.gnu.org/licenses/gpl.html‎
  18. // (c) 86497600cc. Some Rights Reserved.
  19.  
  20. // 修复使用 GM 函数后脚本失效的问题,thanks to shyangs
  21. var window=unsafeWindow,
  22. _=unsafeWindow._,
  23. PageData=unsafeWindow.PageData,
  24. Page=unsafeWindow.Page,
  25. $=unsafeWindow.$,
  26. no_refresh_url_prefix=(typeof unsafeWindow.no_refresh_url_prefix!='undefined')?unsafeWindow.no_refresh_url_prefix:null;
  27.  
  28. var notification=document.createElement('div'),
  29. setting=(window.localStorage.getItem('tb_preload_setting')&&window.localStorage.getItem('tb_preload_setting').indexOf('{')>=0)?JSON.parse(window.localStorage.getItem('tb_preload_setting')):{},
  30. stylesheet='@keyframes setting_panel_show{0%{top:100px;opacity:0}80%{top:-20px;opacity:1}100%{top:0px;opacity:1}}@-webkit-keyframes setting_panel_show{0%{top:100px;opacity:0}80%{top:-20px;opacity:1}100%{top:0px;opacity:1}}@keyframes setting_panel_hide{0%{top:0px;opacity:1}20%{top:-20px;opacity:1}100%{top:100px;opacity:0}}@-webkit-keyframes setting_panel_hide{0%{top:0px;opacity:1}20%{top:-20px;opacity:1}100%{top:100px;opacity:0}}.tb_preload_notification{position:fixed;right:10px;padding:5px;bottom:-50px;box-shadow:0 0 1px 5px rgba(0,0,0,0.5);background:rgba(0,0,0,0.5);font-size:12px;color:#fff;opacity:0;-webkit-transition:0.25s all linear;-o-transition:0.25s all linear;transition:0.25s all linear;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;cursor:pointer;z-index:999999;pointer-events:none}.tb_preload_notification[show]{bottom:10px;opacity:1}.tb_preload_page{width:100%;font-size:14px;text-align:center}.tb_preload_page a{text-decoration:none;color:#333;margin:20px 0;display:block;font-size:14px}.tb_preload_setting{color:#2d64b3;cursor:pointer}.list_loading,.right_section [data-type="tb-datalazyload"]{display:none}.vpic_wrap img{max-height:90px}.tb_preload_setting_panel{width:600px;height:200px;margin:auto;position:fixed;top:0;bottom:0;left:0;right:0;z-index:999998;box-shadow:rgba(0,0,0,.5) 0 0 0 2500px,rgba(255,255,255,.75) 0 0 200px;background:rgba(255,255,255,.75);font-size:14px;-webkit-user-select:none;-moz-user-select:none;-webkit-animation:setting_panel_show 0.75s ease-in;animation:setting_panel_show 0.75s ease-in;font-family:"Hiragino Sans GB","Microsoft Yahei","WenQuanYi Micro Hei",Arial,Tahoma,sans-serif}.tb_preload_setting_panel[close]{-webkit-animation:setting_panel_hide 0.75s ease-out;animation:setting_panel_hide 0.75s ease-out}.tb_preload_setting_panel_bg{width:100%;height:100%;position:fixed;left:0;top:0;z-index:999997}.tb_preload_setting_panel span,.tb_preload_setting_panel a{display:block;cursor:pointer;height:20px;line-height:20px;margin:10px;-webkit-transition:all 0.25s linear;-moz-transition:all 0.25s linear;transition:all 0.25s linear}.tb_preload_setting_panel span{color:#F00;padding-left:50px}.tb_preload_setting_panel span:hover{text-shadow:#F00 0 0 1px}.tb_preload_setting_panel span[active]:hover,.tb_preload_setting_panel a:hover{text-shadow:#7fb900 0 0 1px}.tb_preload_setting_panel span::before{content:"×";display:inline-block;width:20px}.tb_preload_setting_panel span[active]{color:#7FB900}.tb_preload_setting_panel span[active]::before{content:"√"}.tb_preload_setting_panel p{margin:20px;font-size:20px;height:24px;line-height:24px;cursor:default;font-family:"Segoe Script";text-shadow: #000 0 0 2px}.tb_preload_setting_panel a{color:#7FB900;font-family:"Segoe Script";text-align:center}.tbui_follow_fixed{display:block!important}img[origin-src]{display:none!important}',
  31. setting_panel=false,
  32. ss=document.createElement('style'),
  33. notification_timer=null;
  34. ss.textContent=stylesheet;
  35. document.head.appendChild(ss);
  36. notification.className='tb_preload_notification';
  37. document.body.appendChild(notification);
  38. if(setting.thread_preload==null)setting.thread_preload=1;
  39. if(setting.thread_list_lazyload==null)setting.thread_list_lazyload=1;
  40. if(setting.thread_list_preload==null){
  41. setting.thread_list_preload=1;
  42. setting.thread_list_lazyload=1;
  43. var f=document.createElement('script');
  44. f.textContent='$.dialog.alert("<center style=\'font-size:16px\'>请在此呼出设置界面进行设置</center><br><center><img src=\'http://imgsrc.baidu.com/forum/pic/item/8484ecdde71190ef3fa59157cc1b9d16fcfa6008.jpg\' alt></center>",{title:"Tieba Preload Setting Notification",width:1000})';
  45. document.body.appendChild(f);
  46. document.body.removeChild(f);
  47. window.localStorage.setItem('tb_preload_setting',JSON.stringify(setting));
  48. }
  49.  
  50. function set_function(v){
  51. switch(v){
  52. case 1:
  53. if(setting.thread_preload==1){
  54. setting.thread_preload=0;
  55. if(setting_node){
  56. setting_node.textContent='开启自动加载';
  57. setting_node_2.textContent='开启自动加载';
  58. }
  59. if(PageData.product=='pb'&&typeof loader!='undefined'&&loader!=null){
  60. clearInterval(loader);
  61. loader=null;
  62. }
  63. show_notification(1,'已关闭自动加载......');
  64. notification.setAttribute('show','true');
  65. notification_timer=setTimeout(function(){notification.removeAttribute('show')},5000);
  66. }
  67. else{
  68. setting.thread_preload=1;
  69. if(setting_node){
  70. setting_node.textContent='关闭自动加载';
  71. setting_node_2.textContent='关闭自动加载';
  72. }
  73. if(PageData.product=='pb'&&typeof loader!='undefined'&&loader==null)preload_listener();
  74. show_notification(1,'已开启自动加载......');
  75. }
  76. break;
  77. case 2:
  78. if(setting.thread_list_preload==1){
  79. alert('当开启首页贴子列表预加载时,该项不能关闭。');
  80. }
  81. else if(setting.thread_list_lazyload==1){
  82. setting.thread_list_lazyload=0;
  83. if(PageData.product=='frs'&&typeof loader!='undefined'&&loader!=null){
  84. clearInterval(loader);
  85. loader=null;
  86. if(document.getElementById('frs_list_pager'))document.getElementById('frs_list_pager').onclick=null;
  87. }
  88. show_notification(1,'已禁用自动去除首页 lazyload......');
  89. }
  90. else{
  91. setting.thread_list_lazyload=1;
  92. //setting_node.textContent='禁用自动去除首页 lazyload';
  93. if(PageData.product=='frs'&&typeof loader!='undefined'&&loader==null){
  94. kill_tieba_lazyload_listener();
  95. }
  96. show_notification(1,'已开启自动去除首页 lazyload......');
  97. }
  98. break;
  99. case 3:
  100. if(setting.thread_list_preload==1){
  101. setting.thread_list_preload=0;
  102. if(PageData.product=='frs'&&typeof loader!='undefined'&&loader!=null){
  103. clearInterval(loader);
  104. loader=null;
  105. if(document.getElementById('frs_list_pager'))document.getElementById('frs_list_pager').onclick=null;
  106. }
  107. show_notification(1,'已关闭自动加载......');
  108. }
  109. else{
  110. setting.thread_list_preload=1;
  111. setting.thread_list_lazyload=1;
  112. if(PageData.product=='frs'&&typeof loader!='undefined'&&loader==null){
  113. preload_listener();
  114. }
  115. show_notification(1,'已开启自动加载......');
  116. }
  117. break;
  118. }
  119. window.localStorage.setItem('tb_preload_setting',JSON.stringify(setting));
  120. update_setting_panel();
  121. }
  122.  
  123. function call_setting(){
  124. if(setting_panel==false){
  125. setting_panel=true;
  126. var panel=document.createElement('div'),
  127. panel_bg=document.createElement('div');
  128. panel_bg.className='tb_preload_setting_panel_bg';
  129. panel.className='tb_preload_setting_panel';
  130. panel_bg.onclick=function(){
  131. panel.setAttribute('close',true);
  132. setTimeout(function(){panel.parentElement.removeChild(panel);},700);
  133. panel_bg.parentElement.removeChild(panel_bg);
  134. setting_panel=false;
  135. }
  136. panel_bg.setAttribute('title','点击以关闭设置界面');
  137. panel.innerHTML='<p align="center">Tieba Preload Setting</p><span class="tbpreload_setting_panel_thread_preload">自动加载贴子下一页</span><span class="tbpreload_setting_panel_thread_list_lazyload">去除贴吧首页 lazyload</span><span class="tbpreload_setting_panel_thread_list_preload">自动加载贴子列表下一页</span><a href="http://tieba.baidu.com/p/2939166340">Feedback</a>';
  138. document.body.appendChild(panel);
  139. document.body.appendChild(panel_bg);
  140. var panel_thread_preload=document.getElementsByClassName('tbpreload_setting_panel_thread_preload')[0],
  141. panel_thread_list_lazyload=document.getElementsByClassName('tbpreload_setting_panel_thread_list_lazyload')[0],
  142. panel_thread_list_preload=document.getElementsByClassName('tbpreload_setting_panel_thread_list_preload')[0];
  143. panel_thread_preload.onclick=function(){
  144. set_function(1);
  145. }
  146. panel_thread_list_lazyload.onclick=function(){
  147. set_function(2);
  148. }
  149. panel_thread_list_preload.onclick=function(){
  150. set_function(3);
  151. }
  152. update_setting_panel();
  153. }
  154. }
  155.  
  156. function update_setting_panel(){
  157. var panel_thread_preload=document.getElementsByClassName('tbpreload_setting_panel_thread_preload')[0],
  158. panel_thread_list_lazyload=document.getElementsByClassName('tbpreload_setting_panel_thread_list_lazyload')[0],
  159. panel_thread_list_preload=document.getElementsByClassName('tbpreload_setting_panel_thread_list_preload')[0];
  160. if(setting.thread_preload==1)panel_thread_preload.setAttribute('active','true');
  161. else if(panel_thread_preload.hasAttribute('active'))panel_thread_preload.removeAttribute('active');
  162. if(setting.thread_list_lazyload==1)panel_thread_list_lazyload.setAttribute('active','true');
  163. else if(panel_thread_list_lazyload.hasAttribute('active'))panel_thread_list_lazyload.removeAttribute('active');
  164. if(setting.thread_list_preload==1)panel_thread_list_preload.setAttribute('active','true');
  165. else if(panel_thread_list_preload.hasAttribute('active'))panel_thread_list_preload.removeAttribute('active');
  166. }
  167.  
  168. function show_notification(n,c){
  169. notification.textContent=c;
  170. notification.setAttribute('show','true');
  171. if(notification_timer!=null){
  172. clearTimeout(notification_timer);
  173. notification_timer=null;
  174. }
  175. if(n==1){
  176. notification_timer=setTimeout(function(){
  177. notification.removeAttribute('show');
  178. notification_timer=null;
  179. },5000);
  180. }
  181. }
  182.  
  183. GM_registerMenuCommand('Tieba Preload Setting',call_setting);
  184.  
  185. if(typeof PageData!='undefined'&&PageData&&(PageData.product=='pb'||PageData.product=='frs')){ // 判断是否载入
  186. var loading=false,
  187. loader=null;
  188.  
  189. // 以下语句中代码来自 Kill Tieba Lazy Load (by 864907600cc, Licence: WTFPL)
  190.  
  191. function kill_tieba_lazyload(){
  192. var codearea=document.getElementById('pblistCodeArea')||document.getElementById('frslistCodeArea')||null;
  193. if(codearea!=null){
  194. //document.getElementById('list_loading').outerHTML=document.getElementById('pblistCodeArea').value;
  195. //document.getElementById('pblistCodeArea').parentElement.removeChild(document.getElementById('pblistCodeArea'));
  196. var lazyload_t_nodes=codearea.childNodes;
  197. for(var i=0;i<lazyload_t_nodes.length;i++){
  198. if(lazyload_t_nodes[i].nodeType==8){
  199. codearea.outerHTML=lazyload_t_nodes[i].data;
  200. //lazyload_nodes[i].parentElement.removeChild(lazyload_nodes[i])
  201. break;
  202. }
  203. }
  204. }
  205. if(document.querySelectorAll('img[data-tb-lazyload]')){
  206. var lazyload_i_nodes=document.querySelectorAll('img[data-tb-lazyload]');
  207. for(var i=0;i<lazyload_i_nodes.length;i++){
  208. lazyload_i_nodes[i].setAttribute('src',lazyload_i_nodes[i].getAttribute('data-tb-lazyload'));
  209. lazyload_i_nodes[i].removeAttribute('data-tb-lazyload');
  210. }
  211. }
  212. if(document.querySelectorAll('img[onloadfun="listimg"][original]')){
  213. var lazyload_i_nodes=document.querySelectorAll('img[onloadfun="listimg"][original]');
  214. for(var i=0;i<lazyload_i_nodes.length;i++){
  215. lazyload_i_nodes[i].setAttribute('src',lazyload_i_nodes[i].getAttribute('original'));
  216. }
  217. }
  218. if(PageData.product=='pb'){
  219. _.Module.use("pb/widget/ForumListV3", {});
  220. _.Module.use('pb/component/NoAutoVideo',[{text_videofrom:'视频来自: '}]);
  221. rebind_image();
  222. //Page.bindOpenImg();
  223. }
  224. if(PageData.product=='frs'&&document.cookie.match(/batch_delete_mode=(\w{4,5})/)&&document.cookie.match(/batch_delete_mode=(\w{4,5})/)[1]=='true'){
  225. var tls=document.getElementsByClassName('j_thread_list');
  226. for(var i=0;i<tls.length;i++){
  227. if(!tls[i].getElementsByClassName('batch_delete')[0]){
  228. var s='<div class="batch_delete j_batch_delete"><div class="batch_delete_text">勾选</div><input type="checkbox" class="batch_delete_select j_batch_delete_select"></div>';
  229. var t=document.createElement('div');
  230. tls[i].appendChild(t);
  231. t.outerHTML=s;
  232. }
  233. }
  234. }
  235. }
  236.  
  237. // 以下语句中代码基于 Tieba Preload 修改 (by 864907600cc, Licence: GPLv3 | http://ccloli.com/201212/tieba-preload-source/)
  238.  
  239. function whether_fetching(){
  240. //console.log('whether_fetching');
  241. var getscroll=document.documentElement.scrollTop||document.body.scrollTop,
  242. scroll_psi=document.body.scrollHeight-getscroll,
  243. psi=PageData.product=='pb'?5000:PageData.forum.version==2?2500:1500;
  244. if(scroll_psi<=psi&&loading==false){
  245. if(cur_page<total_page){
  246. loading=true;
  247. fetch_next_page();
  248. }
  249. //else window.onscroll=null;
  250. else clearInterval(loader);
  251. }
  252. }
  253.  
  254. function fetch_next_page(){
  255. //console.log('fetch_next_page');
  256. switch(PageData.product){
  257. case 'pb':
  258. var url=page_url+'?see_lz='+see_lz+'&pn='+next_page;
  259. xhr.onreadystatechange=function(){
  260. if(xhr.readyState==4&&xhr.status==200){
  261. var str=xhr.responseText;
  262. if(PageData.page=='v1')var data=str.split('"p_postlist"')[1].split('<div class="p_thread')[0].match(/>([\s\S]+)/)[1]; // 旧版贴吧
  263. else var data=str.split('"p_postlist"')[1].split('"right_section')[0].match(/>([\s\S]+)<\/div>[\s\S]*<\/div>[\s\S]*<div/)[1]; // 先 split 再 match 减少资源消耗(>20s → <1s)
  264. var node=document.getElementsByClassName('p_postlist')[0],
  265. t_node=document.createElement('div'),
  266. p_node=document.createElement('div');
  267. p_node.className='tb_preload_page';
  268. p_node.innerHTML='<a href="'+url+'">第 '+next_page+' 页,共 '+total_page+' 页</a>';
  269. node.appendChild(p_node);
  270. node.appendChild(t_node);
  271. t_node.outerHTML=data;
  272. kill_tieba_lazyload();
  273. ++cur_page;
  274. ++next_page;
  275. loading=false;
  276. if(cur_page==total_page)clearInterval(loader);
  277. notification.removeAttribute('show');
  278. }
  279. }
  280. xhr.open('GET',url);
  281. xhr.send();
  282. notification.setAttribute('show','true');
  283. show_notification(0,'正在加载第 '+next_page+' 页......');
  284. break;
  285. case 'frs':
  286. var url=page_url+'&pn='+next_page;
  287. if(PageData.forum.version==2){
  288. var xurl=page_url+'&apage=1&pn='+next_page;
  289. }
  290. else{
  291. if(location.hash.indexOf('#!')>=0){
  292. var hash_data=location.hash.match(/#\!\/(.)/)[1];
  293. if(hash_data!=last_hash_data){
  294. switch(hash_data){
  295. case 'm':
  296. page_url=page_url.replace(/f.+kw=/,'f?kw=');
  297. last_hash_data='m';
  298. cur_page=0;
  299. next_page=cur_page+50;
  300. total_page=document.querySelector('a.last').href.match(/pn=(\d+)/)[1];
  301. break;
  302. case 'n':
  303. page_url=page_url.replace(/f.+kw=/,'f/good?kw=');
  304. last_hash_data='n';
  305. cur_page=0;
  306. next_page=cur_page+50;
  307. total_page=document.querySelector('a.last').href.match(/pn=(\d+)/)[1];
  308. break;
  309. case 'v':
  310. page_url=page_url.replace(/f.+kw=/,'f/vote?kw=');
  311. last_hash_data='v';
  312. cur_page=0;
  313. next_page=cur_page+50;
  314. total_page=document.querySelector('a.last').href.match(/pn=(\d+)/)[1];
  315. break;
  316. }
  317. }
  318. }
  319. var xurl=page_url+'&ajax=1&pn='+next_page
  320. }
  321. xhr.onreadystatechange=function(){
  322. if(xhr.readyState==4&&xhr.status==200){
  323. var str=xhr.responseText;
  324. if(PageData.forum.version==2){
  325. var data=str.match(/<ul id="thread_list"[\s\S]*?>([\s\S]+)<\/ul>/)[1],
  326. node=document.getElementById('thread_list');
  327. p_node=document.createElement('div'),
  328. context='<a href="'+url+'">第 '+(parseInt(next_page/50)+1)+' 页,共 '+(parseInt(total_page/50)+1)+' 页</a>';
  329. }
  330. else{
  331. var data=JSON.parse(str).data.content.split('<tbody>')[1].split('</tbody>')[0],//str.split('<tbody>')[1].split('</tbody>')[0],
  332. node=document.querySelector('#thread_list tbody'),
  333. p_node=document.createElement('tr'),
  334. context='<td colspan="5"><a href="'+url+'">第 '+(parseInt(next_page/50)+1)+' 页,共 '+(parseInt(total_page/50)+1)+' 页</a></td>';
  335. }
  336. var //node=document.getElementById('thread_list'),
  337. t_node=document.createElement('div')/*,
  338. p_node=document.createElement('div')*/;
  339. p_node.className='tb_preload_page';
  340. p_node.innerHTML=context;
  341. node.appendChild(p_node);
  342. node.appendChild(t_node);
  343. t_node.outerHTML=data;
  344. kill_tieba_lazyload();
  345. cur_page+=50;
  346. next_page+=50;
  347. loading=false;
  348. if(cur_page==total_page)clearInterval(loader);
  349. notification.removeAttribute('show');
  350. }
  351. }
  352. xhr.open('GET',xurl);
  353. xhr.send();
  354. notification.setAttribute('show','true');
  355. show_notification(0,'正在加载第 '+(parseInt(next_page/50)+1)+' 页......');
  356. break;
  357. }
  358. }
  359.  
  360. function preload_listener(){
  361. if(cur_page!=total_page){
  362. //console.log('aaa');
  363. //window.onscroll=function(){ // 改用定时器以节省资源
  364. loader=setInterval(function(){whether_fetching()},1000);
  365. //}
  366. }
  367. }
  368.  
  369. function kill_tieba_lazyload_listener(){
  370. kill_tieba_lazyload();
  371. if(document.getElementById('frs_list_pager'))document.getElementById('frs_list_pager').onclick=function(){
  372. if(loader==null)loader=setInterval(function(){
  373. if(document.getElementById('frslistCodeArea')){
  374. //kill_tieba_lazyload();
  375. clearInterval(loader);
  376. loader=null;
  377. kill_tieba_lazyload_listener();
  378. }
  379. },1000);
  380. }
  381. }
  382.  
  383. function rebind_image(){
  384. var imglist=document.querySelectorAll('.d_post_content img[pic_type="0"]');//.BDE_Image
  385. $(imglist).unbind();
  386. Page.bindOpenImg();
  387. }
  388.  
  389. //notification.onclick=function(){set_function(1)};
  390.  
  391. if(PageData.product=='frs'){
  392. /*if(document.getElementsByClassName('th_footer_l')[0]){
  393. var setting_node=document.createElement('a'),
  394. page_node=document.getElementsByClassName('th_footer_l')[0];
  395. setting_node.textContent=setting.thread_list_lazyload==1?'禁用自动去除首页 lazyload':'开启自动去除首页 lazyload'; // 好长 _(:з」∠)_
  396. setting_node.className='tb_preload_setting';
  397. setting_node.onclick=function(){set_function(2)};
  398. page_node.appendChild(setting_node);
  399. }*/
  400. notification.style.pointerEvents='none';
  401. var xhr=new XMLHttpRequest(),
  402. page_url=no_refresh_url_prefix?('//tieba.baidu.com'+no_refresh_url_prefix):location.href.replace(/&?pn=\d+/,''),
  403. cur_page=location.href.match(/pn=(\d+)/)?parseInt(location.href.match(/pn=(\d+)/)[1]):0,
  404. next_page=cur_page+50,
  405. total_page=PageData.forum.thread_num-PageData.forum.thread_num%50||document.querySelector('a.last').href.match(/pn=(\d+)/)[1],
  406. last_hash_data='';
  407. if(setting.thread_list_preload==1){
  408. kill_tieba_lazyload();
  409. preload_listener();
  410. }
  411. else if(setting.thread_list_lazyload==1)kill_tieba_lazyload_listener();
  412. }
  413. else if(PageData.product=='pb'&&PageData.pager){
  414. kill_tieba_lazyload();
  415. // 以下语句中部分判断代码来自 Chrome 扩展程序 KK 贴吧工具箱 (by kookxiang | https://chrome.google.com/webstore/detail/bcmemjlkdbeephmnklgimfnjlmfhfdgi)
  416. /*cur_page=0,
  417. total_page=0,
  418. page_url='',
  419. see_lz=0,*/
  420. var xhr=new XMLHttpRequest(),
  421. cur_page=PageData.pager.cur_page,
  422. total_page=PageData.pager.total_page,
  423. page_url=PageData.thread_url?'//tieba.baidu.com'+PageData.thread_url:location.href.match(/\/\/tieba\.baidu\.com\/p\/\d+/)[0],
  424. see_lz=PageData.special.lz_only,
  425. next_page=cur_page+1;
  426.  
  427. var setting_node=document.createElement('li'),
  428. page_node=document.getElementsByClassName('l_posts_num');
  429. setting_node.textContent=setting.thread_preload==1?'关闭自动加载':'开启自动加载';
  430. setting_node.className='tb_preload_setting';
  431. var setting_node_2=setting_node.cloneNode(true);
  432. setting_node.onclick=function(){set_function(1)};
  433. setting_node_2.onclick=function(){set_function(1)};
  434. if(page_node[0])page_node[0].insertBefore(setting_node,page_node[0].getElementsByClassName('l_pager')[0].nextSibling);
  435. if(page_node[1])page_node[1].insertBefore(setting_node_2,page_node[1].getElementsByClassName('l_pager')[0].nextSibling);
  436. if(setting.thread_preload==1)preload_listener();
  437. }
  438. }