ハイク用続きを読むグリモン
はてなハイクで長文エントリー時に自動的に「続きを読む」になるグリモンを作りました。
http://maidcure.googlepages.com/read_more_for_haiku.user.js
// ==UserScript== // @name Read More For Haiku // @namespace http://h.hatena.ne.jp/id/maidcure // @description Add "Read More" at Hatena Haiku // @include http://h.hatena.ne.jp/ // @include http://h.hatena.ne.jp/keyword/* // @include http://h.hatena.ne.jp/*/ // @include http://h.hatena.ne.jp/*/following // @include http://h.hatena.ne.jp/id/* // @exclude http://h.hatena.ne.jp/*/[0-9]+ // @version 0.0.1 // ==/UserScript== (function(){ //"続きを読む"を表示させる文字数を設定 var MAXSIZE = 1024; //getElementsByClassName(prototype.js v1.6.0)〜ここから〜 if (!document.getElementsByClassName) document.getElementsByClassName = function(instanceMethods){ function iter(name) { return name.blank() ? null : "[contains(concat(' ', @class, ' '), ' " + name + " ')]"; } instanceMethods.getElementsByClassName = Prototype.BrowserFeatures.XPath ? function(element, className) { className = className.toString().strip(); var cond = /\s/.test(className) ? $w(className).map(iter).join('') : iter(className); return cond ? document._getElementsByXPath('.//*' + cond, element) : []; } : function(element, className) { className = className.toString().strip(); var elements = [], classNames = (/\s/.test(className) ? $w(className) : null); if (!classNames && !className) return elements; var nodes = $(element).getElementsByTagName('*'); className = ' ' + className + ' '; for (var i = 0, child, cn; child = nodes[i]; i++) { if (child.className && (cn = ' ' + child.className + ' ') && (cn.include(className) || (classNames && classNames.all(function(name) { return !name.toString().blank() && cn.include(' ' + name + ' '); })))) elements.push(Element.extend(child)); } return elements; }; return function(className, parentElement) { return $(parentElement || document.body).getElementsByClassName(className); }; }(Element.Methods); //getElementsByClassName(prototype.js v1.6.0)〜ここまで〜 var elm = document.getElementsByClassName("body"); var newstr; for(i=0;i<elm.length;i++) if(elm[i].innerHTML.length > MAXSIZE){ newstr=document.getElementsByClassName("timestamp")[i].innerHTML.replace(/\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/,"続きを読む"); elm[i].innerHTML=elm[i].innerHTML.substr(0,MAXSIZE)+'<br/>'+newstr; } })();
グリモン完成させたのは初めてだったり…。