2011/02/14 にタイムスリップ
by
pacochi
2017-02-16 [2017/02/16 21:44:18]
スターがハートになります。
@@ -13,7 +13,6 @@
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) {
@@ -21,7 +20,7 @@
const p = Hatena.Star.Star.ColorPallet;
v.forEach(
- r => p[r = r ? r.substr(1) : 'yellow'].ImgSrc = f(p[r].ImgSrc)
+ r => p[r = r ? r.substr(1) : 'yellow'].ImgSrc = p[r].ImgSrc.replace(/star/, 'valentine-star')
);
Hatena.Star.Button.sels = {};
@@ -29,7 +28,7 @@
}
const c = document.querySelector('head').appendChild(document.createElement('style'));
- c.type = 'text/css';
+ c.setAttribute('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)
@@ -43,14 +42,9 @@
// 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.stars.forEach(
+ (s, i, a) => a[i] = (s.showInnerStars && (s.showInnerStars() || 1)) ? s : new Hatena.Star.Star(Object.assign(s, { img: null }))
+ );
e.addAddButton();
e.showStars();
/*
* @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'];
// はてなブックマークはいきなりデフォルト値参照してたからデフォルト値変えざるを得ない
if (Hatena.Bookmark) {
const p = Hatena.Star.Star.ColorPallet;
v.forEach(
r => p[r = r ? r.substr(1) : 'yellow'].ImgSrc = p[r].ImgSrc.replace(/star/, 'valentine-star')
);
Hatena.Star.Button.sels = {};
}
const c = document.querySelector('head').appendChild(document.createElement('style'));
c.setAttribute('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) => a[i] = (s.showInnerStars && (s.showInnerStars() || 1)) ? s : new Hatena.Star.Star(Object.assign(s, { img: null }))
);
e.addAddButton();
e.showStars();
});
})();
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。