「Chrome」タグアーカイブ

右クリック禁止(oncontextmenu)や貼り付け無効(onpaste)を無効にする

油断してるとたまに出てくる「右クリック禁止です」みたいな頭の悪いサイトで禁止された動作を使えるようにします。
oncontextmenu=”return false;” や onpaste=”return false;” のアレです。

以下、貼り付け禁止を無効にするやつです。

なんかいろいろ禁止されてるクソサイトの場合は paste, contextmenu, drop あたり書いとけばいいと思います。

document.addEventListener('paste', event => event.stopImmediatePropagation(), true);
document.addEventListener('contextmenu', event => event.stopImmediatePropagation(), true);
document.addEventListener('drop', event => event.stopImmediatePropagation(), true);

指定したサイトでだけこのスクリプトを有効にしないと右クリックで独自のメニューを出すサイトでは、その右クリックが出なくなるので注意が必要です。

Feedlyで読みたくないエントリーを非表示にするユーザースクリプト

Feedly Proに$99払ったのにあまりプロ感がなくどのあたりが有料なのか分からなくなってきたけど、メインのRSSリーダーとして使ってることに変わりはないので中途半端に作ったやつを修正しました。

例のごとく userscripts.org にありそうだけど自分で作ると修正するとき楽なのでということです。

動作確認

ダウンロード: feedly_filter.user.js

「井上喜久子17才です」っつってんだろ! 17sai.user.js

17sai

声優業界の基礎知識ともいえる井上喜久子さんの年齢がGoogle検索で間違って表示されてしまうのを自動で修正します。
他数名の年齢も同様に修正します。

いや、ノリで作ったジョークスクリプトなので細かく検証してませんよ。
元ネタは “hirataya / 17sai.user.js” です。
動かなかったので今のGoogleに対応させてたら他にも年齢間違って表示されてる箇所があったのでベタ書きで追加してってます。
たぶん、間違いなくGoogle検索が重くなります。要注意です。

※「17歳」ではなく「17才」と表記するのが正しいようなので修正しました。

ダウンロード: 17sai.user.js

Feedly Pro ($99) に申し込んだことだしゴミみたいなユーザースクリプトを作った

\Pro Plan/
feedly_pro

つい最近、Feedlyが月額$5の有料プランを先着5000人だったかで$99払えば生涯使えるというのをやってたので申し込んだのだけど、このプレミアム感のなさに驚愕してゴミみたいなユーザースクリプトを作った。

userscripts.org に絶対ありそうな広告エントリーやら必要なさそうなのを非表示にするやつの簡易版。

好んで使ってたDOMNodeInsertedが廃止予定らしく、MutationObserverというのを使ってるので古いブラウザだと全く動かないしエラーでます。
正直、MutationObserverが使いたかっただけ。

ダウンロード: feedly_filter.user.js

// ==UserScript==
// @name           Feedly Filter
// @description    広告エントリーを非表示にするしか能がない
// @include        http://cloud.feedly.com/*
// @include        https://cloud.feedly.com/*
// ==/UserScript==

(function() {
    var feedly = {
        titles: [
            /^(PR:|AD:|INFO:|【PR】)/i,
            /管理人のブックマーク/,
            /^ダイジェストニュース/,
            /bokete/
        ],
        urls: [
        ],
        observer: new MutationObserver(function(mutations) {
            mutations.forEach(function(mutation) {
                var elm = mutation.addedNodes[0];
                if (elm && elm.nodeName == 'DIV') {
                    feedly.filterEntry(elm);
              }
            });
        }),
        init: function() {
            // this.debug(' init()');
            this.observer.observe(document.body, {childList: true, subtree: true});
            window.addEventListener('beforeunload', this, true);
        },
        handleEvent: function(event) {
            if (event.type == 'beforeunload') {
                // this.debug(' disconnect()');
                this.observer.disconnect();
                window.removeEventListener('beforeunload', this, true);
            }
        },
        debug: function() {
            var i, l = arguments[0];
            for (i = 1; i < arguments.length; i++) {
                if (arguments[i]) l += ', ' + arguments[i];
            }
            unsafeWindow.console.log('[userscript][feedly_filter]' + l);
        },
        filterEntry: function(elm) {
            var a, i, title, read = false;
            if (!elm.className || !elm.className.contains('u0Entry')) return;
            a = elm.getElementsByClassName('title')[0];
            if (a.className == 'title read') {
                read = true;
            }
            title = elm.getAttribute('data-title');
            for (i = 0; i < this.titles.length; i++) {
                if (!this.titles[i].test(title)) continue;
                // this.debug('[hide] ' + title);
                this.hide(elm, read);
                break;
            }
        },
        hide: function(elm, read) {
            var div = elm.getElementsByClassName('condensedTools')[0],
                img, e;

            if (read) {
                elm.style.display = 'none';
                return;
            }
            if (!div) return;
            img = div.getElementsByTagName('img')[1];
            if (img.getAttribute('title') == 'Mark as read and hide') {
                e = document.createEvent('MouseEvents');
                e.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
                img.dispatchEvent(e);
            }
        }
    };
    feedly.init();
})();

FirefoxとかChromeで使えるAmazon Kindleストアの検索プラグイン作った

なんかデフォルトで入ってるAmazonのやつ使ったあとにKindleストアで検索しなおすのが面倒臭くて、それなら最初っからKindleストアのやつ作ればいいじゃん!ということです。

Kindleストア検索プラグインをインストール

中身こんなの

<?xml version="1.0" encoding="UTF-8"?>
<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
<ShortName>Kindleストア</ShortName>
<Description>Kindleストア</Description>
<InputEncoding>UTF-8</InputEncoding>
<Image width="16" height="16">data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHgSURBVHjalFM9TNtQEP4cB7PwM1RITUXIgsRaYEEVEyKZwhiyZAQyd0BhpFOlIjoBqhjSqVQMoVMLLAjEwECCQJkSkBqJYDOAFOMKFSf28d7DTUxiUDnp/Pzeu/vuu7t3ICKF6SLTMv2/lB0fRWKfjwDm4JJisYh0Oo3fpZLYT0SjSCQS8JAFMADNDZ3NZsnf1taiqVTKi4nGASruk5lkkmTmMB6JUKFQqO+DfX1eABWeQoVR6f7HSdM0obqu48Yw8G1tDT82NsRd1TSbU9BbGPCog8PDj+jLzurFoAVgMh4XxoNDQ6SqKi0tL9eBvAB8zZwymYxYY7EYAoEA8vm82BNTg6XUIs0MeGTZoR1mhXSnwNl4pmAbjU7mcjkKhkL1ynMnntZ4OEw3VyrV8utk7s5TdW++0QXz+1i3P7IK36t+PCfVn1OQOoOA0gXr5DPak+cPXbBK+/T3S69AtY3LJ98vZ1or/iLr+pTuvr59/A6s003UdqZFJF/PCKQ3o5CUznoBST2AfbEF/9iqYEDaIfwj73VJPEfgNTe0tWNYR0uwy9uOW0OkrgHI7z5ADo2C7v48nLV3XHKAT+x/1m1sX58xsBxg8rZJrDYD8DHHp4aJj/MK09sXjPOt46PcCzAACXY8/u34wN0AAAAASUVORK5CYII=</Image>
<Url type="application/x-suggestions+json" method="GET" template="http://completion.amazon.co.jp/search/complete?method=completion&amp;search-alias=digital-text&amp;mkt=6&amp;q={searchTerms}"></Url>
<Url type="text/html" method="GET" template="http://www.amazon.co.jp/exec/obidos/external-search/">
    <Param name="mode" value="blended"/>
    <Param name="url" value="search-alias=digital-text"/>
    <Param name="lo" value="none"/>
    <Param name="field-keywords" value="{searchTerms}"/>
</Url>
<SearchForm>http://www.amazon.co.jp/</SearchForm>
</SearchPlugin>

Firefox用のクックパッド レシピ検索プラグイン作った

晩ごはん何にしようか迷ったら具材からまー適当に調べられるので。
たぶん他に作ってる人いるだろうけどググるのすら面倒だし自分で書いた方が早いやって事です。

どうやらこれ、Chromeでも使えるみたい。

クックパッド検索プラグインをインストール

cookpad.xmlの中身はこんなの↓

<?xml version="1.0" encoding="UTF-8"?>
<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
<ShortName>クックパッド</ShortName>
<Description>クックパッド レシピ検索</Description>
<InputEncoding>UTF-8</InputEncoding>
<Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMDAAAzYQECNs0LIV/+Ezl//xQ8gv8OKWn/Awc94QAAM4AAADMPAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMaAQI2xhZBiv8uier/M5n//zOZ//8zmf//M5n//zGS9v8dVqb/BApB5QAAMzsAAAAAAAAAAAAAAAAAADMWAgc92yRswv8sg+L/LIPi/yyD4v8sg+L/LIPi/yyD4v8sg+L/M5f9/y2F5P8IF1H2AAAzOwAAAAAAAAAAAAAztCNovf8lb8j/JCRQ/1FRdP9RUXT/UVF0/1FRdP9RUXT/KytW/yVtxP8zmf//LYXk/wQLQeUAADMPAAAzQBAwc/8zmf//K4Dd/15efv/w8PP/5ubr/+bm6//m5uv/5ubr/4yMo/8eWqr/M5n//zOZ//8dV6f/AAAzgAAAM6Imc8z/M5n//zGS9v8/P2b/eHiT/0ZGa/9GRmv/RkZr/0ZGa/82Nl//GEeS/zOZ//8zmf//MZL2/wMIPeECBjveMpf8/zOZ//8zmf//JCxc////////////////////////////29vi/xEydv8yl/z/M5n//zOZ//8OKWr/BxZQ+jOZ//8zmf//HVeo/xcbS//+/v7///////////////////////n5+v8MDD3/ICVU/xxSoP8zmf//FDyC/wYTTPYzmf//J3TO/01Ncf/5+fr/////////////////////////////////hoae//z8/f9PT3L/J3bQ/xM5f/8BAjbSMZL1/xtRn/+rq7z/////////////////////////////////////////////////oKCz/x1YqP8LIV/+AAAzjSJluf8lbcX/Xl5+//7+/v/+/v7/39/m////////////z8/Z/2VlhP/8/P3/+fn6/0hJbf8jab//AQI2zQAAMyYKHVr7M5f8/xhIkv8pK1f/KCpX/zk6Y//19ff//v7+/25ui/8OK2z/HCJT/xkhVP8eWan/FkGK/wAAM2EAAAAAAAAziRlKlf8zmf//MpT4/zKU+P8hYbT/FyBU/x8jU/8XRY7/M5j+/zOZ//8zmf//JW7G/wECNsYAADMDAAAAAAAAMwUAADOxGUqV/zOX/f8zmf//M5n//zOZ//8zmf//M5n//zOZ//8zmf//I2i9/wIHPdsAADMaAAAAAAAAAAAAAAAAAAAzBQAAM4kKHVr7ImW5/zGS9f8zmf//M5n//zKW/P8mc8z/EDBz/wAAM7QAADMWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzJgAAM40BAjbSBhNM9gcWUPoCBjveAAAzogAAM0AAAAAAAAAAAAAAAAAAAAAA+A8AAOAHAADAAwAAgAEAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAAgAEAAMADAADgBwAA+B8AAA==</Image>
<Url type="text/html" method="GET" template="http://cookpad.com/search/post">
  <Param name="keyword" value="{searchTerms}"/>
</Url>
<SearchForm>http://cookpad.com/</SearchForm>
</SearchPlugin>