AutoPagerizeを使ってもmixiの日記で絵文字が使えるようにする

また調べたらもうあったけど


// ==UserScript==
// @name AutoPagerize mixi Diary Emoji Filter
// @namespace http://d.hatena.ne.jp/kiyo_hoge/
// @include http://mixi.jp/view_diary.pl?*
// ==/UserScript==

(function() {
var linkCount = 0;
var replaceOnClick = function() {
var emojiAnchor = document.evaluate('id("bodyMainAreaMain")/div[@id="diaryComment"]//a[@onclick="openEmojiPalette(document.comment_form.comment_body, event); return false;"]', document, null, 7, null);
for (var i = 0, l = emojiAnchor.snapshotLength; i < l; i++) {
emojiAnchor.snapshotItem(i).setAttribute('onclick', 'openEmojiPalette(document.comment_form[' + linkCount++ + '].comment_body, event); return false;');
}
};
document.addEventListener('AutoPagerize_DOMNodeInserted', replaceOnClick, false);
})();

絵文字挿入ボタンが表示されなくなるのはAutoPagerizeでページを挿入後に
同じname(comment_form)を持つformが複数存在するようになり、
document.comment_formの戻り値が配列になる所為。


このスクリプトはそのことに対応できるようにonclickを書き換えている。


Firefox 3.6.8とGoogle Chrome 5.0で動作を確認。