Reddit Inline Images

Displays images inline on reddit.com

目前為 2016-06-19 提交的版本,檢視 最新版本

// ==UserScript==
// @name         Reddit Inline Images
// @namespace    https://gf.qytechs.cn/en/users/49817-quodroc
// @version      1.0
// @description  Displays images inline on reddit.com
// @author       quodroc
// @match        https://www.reddit.com/*
// @match        http://www.reddit.com/*
// @grant        none
// ==/UserScript==

function main() {
	var links = document.querySelectorAll('a.title, .md a');
	var direct = /\.(?:jpe?g|png|gif)(?:[?#].*)?$/i;
	var imgur = /imgur\.com\/[a-z0-9]+\/?(?:[?#].*)?$/i;

	for (var i in links) {
		var link = links[i];
		var url = link.href;
		if (url) {
			if (direct.test(url))
				addImage(link, url);
			else if (imgur.test(url))
				addImage(link, url + '.jpg');
		}
	}
}

function addImage(element, url) {
	var preview;
	if (element.className.startsWith('title') && (preview = element.parentNode.parentNode.querySelector('.preview'))) {
		preview.style.width = 'auto';
		preview.parentNode.parentNode.parentNode.style.maxWidth = null;
		makeResizable(preview);
		return;
	}

	var a = document.createElement('a');
	a.href = url;

	var img = document.createElement('img');
	img.src = url;
	img.style.maxHeight = '450px';

	element = element.parentNode;

	img.onerror = function() {
		element.removeChild(a);
	};

	makeResizable(img);

	a.appendChild(document.createElement('br'));
	a.appendChild(img);
	element.appendChild(a);
}

function makeResizable(img) {
	var dragging = false;

	img.onclick = function () {
		if (!dragging) {
			img.style.height = null;
			if (img.style.maxHeight)
				img.style.maxHeight = null;
			else
				img.style.maxHeight = '450px';
		}
		return false;
	};

	img.onmousedown = function (e) {
		var xo = e.pageX,
			yo = e.pageY,
			ho = img.clientHeight;

		var mousemove = function (e) {
			img.style.height = img.style.maxHeight = Math.max(ho + e.pageY - yo + e.pageX - xo, 0) + 'px';
			img.style.maxWidth = 'none';
			dragging = true;
		};

		var mouseup = function (e) {
			document.removeEventListener('mousemove', mousemove);
			document.removeEventListener('mouseup', mouseup);
			setTimeout(function () { dragging = false; }, 0);
		};

		document.addEventListener('mousemove', mousemove);
		document.addEventListener('mouseup', mouseup);
		e.preventDefault();
	};
}

main();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址