// ==UserScript== // @name 新标签页打开3dm论坛帖子 // @namespace http://tampermonkey.net/ // @version 0.2 // @description 新标签页打开3dm论坛帖子 /change the way to open each result from "current tab" to "new tab" // @author MWY 3376766578 // @match *://bbs.3dmgame.com/forum*.html // @match *://bbs.3dmgame.com/forum.php?mod=forumdisplay&*&filter=* // @icon https://www.3dmgame.com/index/images/logo_xiaoniao.png // @grant none // @downloadURL none // ==/UserScript== (function() { 'use strict'; function getList(){ return document.getElementById('threadlisttableid').getElementsByClassName('s xst'); } var as = getList(); function modfiyA(as){ for(var i=0;i<=as.length-1;i++){ //console.log("第"+i+"次循环"); //console.log(as[i]); as[i].onclick = null; as[i].target = '_blank'; }; } modfiyA(as); var totals = as.length; function checkList(){ var c = getList(); if(totals != c.length){ console.log("刷新了,快看看数据吧!!!!!!!!"); modfiyA(as); totals = c.length; }else{ console.log("无数据变化"); } } //--------------------------------------------------------------------------分割线-------------------------------------------------------------------------- //下面代码是点击事件 下一页的 Ajax代码 。我在最后一句 加了 checkList()。 就是为了下一页数据加载完毕后 再次更改target 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>/g); for (i in nexts) { if (i == 'index' || i == 'lastIndex') { continue; } var insertid = nexts[i].match(//); if (!$('normalthread_' + insertid[1])) { var newbody = document.createElement('tbody'); tableobj.appendChild(newbody); var div = document.createElement('div'); div.innerHTML = '