2011/02/14 にタイムスリップ
by
pacochi
2017-02-16 [2017/02/16 21:44:18]
スターがハートになります。
@@ -19,16 +19,12 @@
if (Hatena.Bookmark) {
const p = Hatena.Star.Star.ColorPallet;
- const l = Hatena.Star.Button.sels || {};
- v.forEach(r => {
+ v.forEach(
+ r => p[r = r ? r.substr(1) : 'yellow'].ImgSrc = f(p[r].ImgSrc)
+ );
- const k = `.hatena-star${r}-star-image`;
- if (l[k]) l[k] = f(l[k]);
- r = r ? r.substr(1) : 'yellow';
- p[r].ImgSrc = f(p[r].ImgSrc);
-
- });
+ Hatena.Star.Button.sels = {};
}
/*
* @title 2011/02/14 にタイムスリップ
* @description スターがハートになります。
* @include *
* @license MIT License
* @javascript_url
*/
// http://d.hatena.ne.jp/hatenastar/20110214/1297662727
(() => {
if (typeof(Hatena) == 'undefined' || !Hatena.Star) return;
const v = ['', '-green', '-red', '-blue', '-purple', '-temp'];
const f = m => m.replace(/star/, 'valentine-star');
// はてなブックマークはいきなりデフォルト値参照してたからデフォルト値変えざるを得ない
if (Hatena.Bookmark) {
const p = Hatena.Star.Star.ColorPallet;
v.forEach(
r => p[r = r ? r.substr(1) : 'yellow'].ImgSrc = f(p[r].ImgSrc)
);
Hatena.Star.Button.sels = {};
}
const c = document.querySelector('head').appendChild(document.createElement('style'));
c.type = 'text/css';
v.forEach(
r => c.sheet.insertRule(`.hatena-star${r}-star-image {background-image: url('http:\u002F\u002Fs.hatena.ne.jp/images/valentine-star${r}.gif') !important}`, 0)
);
Hatena.Star.Star.gotImage = {};
Hatena.Star.EntryLoader.entries.forEach(e => {
// http://var.blog.jp/archives/55466071.html
// e.flushStars() はスター情報まで空になる
e.star_container.innerHTML = '';
e.stars.forEach((s, i, a) => {
s.img = null;
// ついでに展開
if (s.showInnerStars) s.showInnerStars();
else a[i] = new Hatena.Star.Star(s);
});
e.addAddButton();
e.showStars();
});
})();
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。