微博图片全显示

同屏显示多图微博的全部大图。

目前为 2015-07-10 提交的版本。查看 最新版本

// ==UserScript==
// @name        微博图片全显示
// @namespace   hzhbest
// @include     http://weibo.com/*
// @description    同屏显示多图微博的全部大图。
// @version     1.1
// @grant       none
// ==/UserScript==

(function() {

	// http://weibo.com/2710065263/BmxiVDCgt?from=page_1005052710065263_profile&wvr=6&mod=weibotime&type=comment#_rnd1436436058420
	// http://weibo.com/2328516855/CnYCvixUq?type=comment#_rnd1436493435761
var regex = new RegExp('weibo\\.com\\/\\d{10}\\/[a-z0-9A-Z]{9}\\?');

var _init = -1;
// window.addEventListener('load', function(){if (regex.test(document.location.href)) {setTimeout(init, 3000);}}, false);
if (regex.test(document.location.href)) {setTimeout(init, 3000);}

function init(){
	var box = getElementsByClass("WB_media_wrap", 'div')[0];
	// if (!box && _init < 0) {setTimeout(init, 3000); _init += 1; return;}
	var imgthumbs = box.getElementsByTagName('img');
	var imgsrc = [], imgs = [], imgl = imgthumbs.length;
	var expbox = getElementsByClass("WB_expand_media_box", 'div')[0];

	// Insert CSS
	var headID = document.getElementsByTagName("head")[0];         
	var cssNode = creaElemIn('style', headID);
	cssNode.type = 'text/css';
	cssNode.innerHTML = '.big_pic{max-width: 890px;} .WB_frame_c {width: auto !important; max-width: 920px; min-width: 600px;} .WB_text.W_f14, .WB_text{width: 520px;} .media_box{display: none !important;}';
	
	for (var i = 0; i < imgl; i++) {
		if (/\/square\//.test(imgthumbs[i].src)) {		// http://ww1.sinaimg.cn/square/c0788b86gw1etxemfiltjj20go0gowf8.jpg
			imgsrc[i] = imgthumbs[i].src.replace("/square/", "/large/");
		} else if (/\/thumbnail\//.test(imgthumbs[i].src)) {	// http://ww3.sinaimg.cn/thumbnail/bfc243a3gw1etx3ffxyhvg206y03ukjm.gif
			imgsrc[i] = imgthumbs[i].src.replace("/thumbnail/", "/large/");
		} else {
			continue;
		}
		imgs[i] = creaElemIn('img', box);
		creaElemIn('br', box);
		imgs[i].src = imgsrc[i];
		imgs[i].className = "big_pic";
	}
	
	box.style = "";
	expbox.style = "display: none;";
}

// Create an element
function creaElemIn(tagname, destin) {
	var theElem = destin.appendChild(document.createElement(tagname));
	return theElem;
}

function getElementsByClass(cName ,tagName){
	var elements = tagName ? document.getElementsByTagName(tagName) : document.getElementsByTagName('*');
	var findEles = [];
	var reg = new RegExp('^'+cName+'\\s*|\\s+'+cName+'\\s+|\\s+'+cName+'$');
	for(var i=0;i<elements.length;i++) {
		if(reg.test(elements[i].className))findEles.push(elements[i]);          
	}
	return findEles;
}


})();