GreasemonkeyでFeedeenのリストビュー未更新タイトルを消す

記事は筆者のメモ的なものです。コードを使用するときは自己責任でお願いします。

2013.10.16 Feedeen Full  FeedというGreasemonkeyを発見し、これをGitHubでフォーク・分岐しました。詳しくは後半の追記の部分をご覧ください。

フィードリーダーFeedeenの左ペインで未更新タイトルが縦の幅を取っていたので、Greasemonkey(Chromeの場合はTampermonkey)で間引きできないか(消せないか)と試行錯誤してみた。

コード全文:

// ==UserScript==
// @name Feedeen Custom List View
// @description Script Description
// @namespace http://www.example.com/gmscripts
// @include http://feedeen.com/*
// @version 0.20
// @require http://codeorigin.jquery.com/jquery-1.10.2.min.js
// @require http://codeorigin.jquery.com/ui/1.10.3/jquery-ui.min.js
// ==/UserScript==
(function(d, func) {
var check = function() {
if (typeof unsafeWindow.jQuery == 'undefined') return false;
func(unsafeWindow.jQuery); return true;
}
if (check()) return;
var s = d.createElement('script');
s.type = 'text/javascript';
s.src = 'http://codeorigin.jquery.com/jquery-1.10.2.min.js';
d.getElementsByTagName('head')[0].appendChild(s);
(function() {
if (check()) return;
setTimeout(arguments.callee, 100);
})();
})(document, function($) {
$(document).ready(function(){
$('body').append($('<button id="upd" style="background-color:lightblue; position: fixed; top: 0px; left: 0px; height: 32px; width: 180px; z-index: 0x7FFFFFFF !important;"></button><script> n $("#upd").click(function(){ $($("span[style$='display: none;']")).closest("div").html(""); n });n</script>'));
});
});

実は考えたのは })(document, function($) { から始まるココだけ^^;↓ (以前の呪文はGreasemonkeyの定型およびGreasemonkeyでjQueryを実行させるための呪文.)

Ver0.10

 $('.o-q').click(function(){
var upd = $(".o-K-d[style$='display: none;']");
$(upd).parent().html('');
});

Ver0.20

 $(document).ready(function(){  
$('body').append($('<button id="upd" style="background-color:lightblue; position: fixed; top: 0px; left: 0px; height: 32px; width: 180px; z-index: 0x7FFFFFFF !important;"></button><script> n $("#upd").click(function(){ $($("span[style$='display: none;']")).closest("div").html(""); n });n</script>'));
});

過去に失敗したコードも一応残しておこう。その1

 ($('.o-K-d').filter(function() { return $(this).css("display") == "none" })).html('');

過去失敗したコードその2

 ($('.o-K-nb').not($('.o-K-nb').find('.o-K-d').filter(function() { return $(this).css("display") == "none" }))).html('');
適用前と後でこんなにも違うんです!

追記

  • 9/4:適用前後のスクリーンショットをアップ.
  • 9/5:間引きが自動で適用されるようにコードを改良.解説追加.初回読み込みは自動ならず(さらに改良予定)->Ver0.10.
  • 9/8:察知されたか否かは定かではないがfeedeenがコード変えたので対応->Ver0.20.feedeen側がユーザスクリプト不可な仕様になったため手動ボタンのみで間引きを実行するように変更.手動ボタンは本来feedeenロゴがある場所へHTML読み込み時に上書きされる仕組み.
  • 10/16Feedeen Full  FeedというGreasemonkeyを発見したので、これをGitHubでフォークして分岐。コミットしました。これからはここで開発を進めたいと思います。GitHub

参考サイト
Greasemonkey関連(GreasemonkeyでjQueryを使う方法)
OTCHY.NET-Greasemonkey で 超お手軽に jQuery を使うスニペット-
blog;-greasemonkey内でjQueryを使う-
JavaScript/jQuery関連
親子要素を呼ぶ方法まよねこ inside-【jQuery】thisの親や子要素の指定方法[リライト版]-
CSSのdisplay:noneのセレクト方法は?staskoverflow-jquery select all br with display:none;-
HTML5 カスタムデータ属性DRESS CORDING