【はてなスター】同じURLで複数箇所に★を付けると誤動作する件
この記事で報告した不具合については、2007/08/10に改修されました。
1つのページ内に同一URLが複数存在する場合に☆が集まって表示される問題を修正しました
1つのページ内に同一URLが複数存在する場合に☆が集まって表示される問題を修正しました
参考として記事は消さずに置いておきます。
ひとつのページ内の複数箇所に、同一のURLを対象にした『はてなスター』を複数設置しようとすると、特定の場所に★が固まって付いてしまう現象を発見しました(Ten.VERSION = 0.08)。
例えばこのサイトで、『目次』『記事タイトル』『記事フッタ』の三ヶ所を対象にするような設置の仕方をすると、あるページでは目次に★が付かなかったり、記事タイトルのところに★が集中したり、という症状が発生。
★をつける場所をうまく制御できていないように思えます。
★をつける場所をうまく制御できていないように思えます。
とりあえず暫定的に、HatenaStar.js に下記のようなパッチ(赤の2箇所)をあてて見たところ、動作が改善されました。
receiveStarEntries: function(res) {
var entries = res.entries;
if (!entries) entries = [];
for (var i = 0; i < this.entries.length; i++) {
var e = this.entries[i];
if (e.mark) continue;
for (var j = 0; j < entries.length; j++) {
var se = entries[j];
if (!se.uri) continue;
if (encodeURIComponent(se.uri) == encodeURIComponent(e.uri)) {
e.mark = true;
e.bindStarEntry(se);
entries.splice(j,1);
break;
}
}
if (typeof(e.can_comment) == 'undefined') {
e.setCanComment(res.can_comment);
}
e.showStars();
e.showCommentButton();
}
}
var entries = res.entries;
if (!entries) entries = [];
for (var i = 0; i < this.entries.length; i++) {
var e = this.entries[i];
if (e.mark) continue;
for (var j = 0; j < entries.length; j++) {
var se = entries[j];
if (!se.uri) continue;
if (encodeURIComponent(se.uri) == encodeURIComponent(e.uri)) {
e.mark = true;
e.bindStarEntry(se);
entries.splice(j,1);
break;
}
}
if (typeof(e.can_comment) == 'undefined') {
e.setCanComment(res.can_comment);
}
e.showStars();
e.showCommentButton();
}
}
はてなアイデアに登録:idea:16337
→2007/08/10に修正された模様です(詳細はこちら)。
- はい
- いいえ
« 【ココログ】はてなスターがアーカイブページで動作しない件 | トップページ | 【はてなスター】FavoritesやFriendsがうまく登録されない件 »
「パソコン・インターネット」カテゴリの記事
- Twitter 原寸びゅー:PC版ブラウザ用・Twitterの画像閲覧と保存がはかどる拡張機能の紹介(2016.02.12)
- スマートフォンをPC上の音楽を再生するためのリモコンとして使いたい(2016.01.10)
- BIGLOBE光ネクスト(大阪)の通信速度問題 - プロバイダ選びは難しい……(2015.08.13)
- BOOK☆WALKER さんに関して最近経験した不安と不満(2015.08.10)
- 『#鳥獣戯画制作キット』が楽しい(2015.07.01)
« 【ココログ】はてなスターがアーカイブページで動作しない件 | トップページ | 【はてなスター】FavoritesやFriendsがうまく登録されない件 »
コメント