あたらしものずきっ!

試してみたものとか、遊んでみたものを色々記してみます。

PopTipにアイコンをくわえてみた

該当要素が見た目わかんないので、アイコン添付するようにしてみた。


[錐] 汎用ポップアップ Greasemonkey "PopTip" を作ったよ。
http://www.madin.jp/diary/?date=20080820#p01
画像指定。

   var popupTil = null;

+  // == IMAGE ==
+  var IMAGE_INFOBOX = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAPBAMAAAAmOuNHAAAAMFBMVEUODg5Ic///1NQAVf+Oq/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADG+rFBAAAAEHRSTlP//wD/////////////////8qlaxQAAAENJREFUeJxtzdEJACAIRdFLuYAbhBMErdD+M/U06CtBj4goEcFNPItwNQzPaFCC1XxiW3sr3axr/znKpkuSut95v+IAc7QLhVJ7rEgAAAAASUVORK5CYII=';

   // == SITEINFO begin ==

1KBの素材屋さんからお借りしました。そして、PopupManager()のなかに、

            for (var j in targetElementList) {
                if (linkElementList.length<=j) break;
                var url = linkElementList[j].href;
+               if (SITEINFO[i].stripe) {
+                   var signimg = document.createElement("img");
+                   signimg.src = IMAGE_INFOBOX;
+                   linkElementList[j].appendChild(signimg);
+               }
                if (SITEINFO[i].linkReplaceRule) {
                    var rule = SITEINFO[i].linkReplaceRule;
                    if (rule.pattern && rule.replacement) url = url.replace(new RegExp(rule.pattern), rule.replacement);
                }
                this.setEvent (targetElementList[j], url, SITEINFO[i].popupElement, 
                    {
                        style:SITEINFO[i].style,
                        containerHTML:SITEINFO[i].containerHTML,
                        delay:SITEINFO[i].delay
                    });
            }

の処理を加えておいた。表示する場合は、SITEINFOに追加必要になります。

    {
        description: 'Hatena Bookmark',
        url: '^http://b.hatena.ne.jp/*',
        linkElement: '//div[@class="entry-footer"]//*//a',
        popupElement: 'id("entry-info")//blockquote',
        delay: 1000,
+       stripe: true,
        style: {
            fontSize: '80%'
        }
    },

ソースを全部張ったけど、コピペ過程でなんかミスったとこがあったぽいので、修正部分だけにしておきます。