2048论坛预加载视频图片
< Feedback on 2048
// ==UserScript== // @name 2048 // @namespace https://greasyfork.org/zh-CN/scripts/442235-2048/code // @version 0.12.2 // @description 2048论坛预加载视频图片 // @author sht // @match http*://*/2048/* // @grant none // @require https://libs.baidu.com/jquery/2.1.3/jquery.min.js // @license MIT // ==/UserScript== //注入页面的脚本文件 $(function() { $('a font[size="4"]').hide(); $('li').hide(); // 是否包含特定字符串,用以排除无关图片 function strContains(str) { var containUselessImg = ['none', 'online', 'stealth', 'logo', 'post', 'level', 'default/lol', 'default/titter'] for (var j = 0; j < containUselessImg.length; j++) { if (str.includes(containUselessImg[j])) { return true; } } return false; } function jsleft(obj, str) { var index = obj.indexOf(str); obj = obj.substring(0, index); return obj; } //JS 取右字符函数 function jsright(obj, str) { var index = obj.indexOf(str); obj = obj.substring(index + 1, obj.length); return obj; } function jsmid(str, b, a) { var bds = b + '(\\S*)' + a; return str.match(bds)[1]; } function bt() { $('.f14 a').each(function() { var href = $(this).attr("href"); if (href.indexOf('name=') > 0) { var st = jsright(href, '='); // console.log(st); href = 'https://down.dataaps.com/down.php/' + st + '.torrent'; $(this).attr('href', href); } }) } var ur = window.location.href; if (ur.indexOf("state") > 1) { // console.log('启动了 '); setTimeout(bt, 1000); } var res = ''; var pattstr = '.subject'; var urls = $('.subject'); var s_urls = []; var defer = $.Deferred(); var i, p; for (i = 0; i < urls.length; i++) { var url = urls[i].href; s_urls.push(url); } //这一步必须要写,要不然下面的then无法使用 defer.resolve($("#content_2015195").append("")); $.each(s_urls, function(i, e) { //i 是序列,e是数值 defer = defer.then(function() { return $.ajax({ url: e, method: 'get', success: function(data) { // 匹配图片(g表示匹配所有结果i表示区分大小写) var imgReg = /<img.*?(?:>|\/>)/gi; // 匹配src属性 var srcReg = /src=[\'\"]?([^\'\"]*)[\'\"]?/i; var arr = data.match(imgReg); for (var j = 9; j < arr.length; j++) { var src = arr[j].match(srcReg); // 获取图片地址,match对象没有length属性,先转数组 // 转数组需要先判空 if (src != null) { var srcArr = Object.keys(src); // 第二个就是真实的匹配结果,在去除无用图片后,添加进img标签 if (srcArr.length > 1 && !strContains(src[1])) { $('.subject').eq(i).append('<img src="' + src[1] + '" width=400 /><p>'); } } } } }) }); }); defer.done(function() { $("#content_2015195").append("ajax全部执行完成<br/>") }); })
Sign in to post a reply.
感谢分享,但是在使用过程中遇到了一些问题,例如控制台报错,某些帖子不加载等等。通过修改match方式解决了这些问题,以下为源码。