// ==UserScript== // @name 5ch_thumb_view // @namespace http://catherine.v0cyc1pp.com/5ch_thumb_view.user.js // @include http://*.5ch.net/* // @include https://*.5ch.net/* // @include http://*.bbspink.com/* // @include https://*.bbspink.com/* // @author greg10 // @run-at document-end // @license GPL 3.0 // @version 0.4 // @require http://code.jquery.com/jquery-3.2.1.min.js // @grant none // @description 5ちゃんねるの画像をサムネイル表示する。 // @downloadURL none // ==/UserScript== console.log("5ch_thumb_view start"); function main() { $("a").each( function() { var thiselem = $(this); var str = $(this).text(); if ( $(this).attr("myloaded") === "done" ) { return; } $(this).attr("myloaded", "done"); var result = str.match( /(\/\/.*(.jpg|.jpeg|.png|.gif|.bmp|.webp))$/i ); if ( result === null ) { return; } console.log(".jpg or image matched"); /* 二つhttps化したところで焼け石に水だった。ブラウザ上部をsecure状態にするにはコンテンツ全て100%のhttps化が必要。 // https優先 str = str.replace( /http:\/\/i\.imgur\.com\//, "https://i.imgur.com/"); str = str.replace( /http:\/\/pbs\.twimg\.com\/media\//, "http://pbs.twimg.com/media/"); */ //str = str.replace( /http:\/\//, "https:\/\/"); var link2img = $("", { href: str, // 別タブか、同一タブかは好みが分かれるので、保留。 // →別ドメインのリンクは別タブで開くのが普通なので、_blank化。 target: '_blank', myloaded: 'done' }); var elem_p = $("

"); var img = $("", { src: str, border: '1px', width: '100px' }); thiselem.after(elem_p); elem_p.after(link2img); link2img.append(img); }); } main(); var observer = new MutationObserver(function(mutations) { observer.disconnect(); main(); observer.observe( document, config); }); var config = { attributes: false, childList: true, characterData: false, subtree:true }; observer.observe( document, config);