// ==UserScript== // @name yazztter Words link // @namespace http://web.zgo.jp/ // @include http://twitter.com/yazztter* // @description yazztterのホットなキーワードにリンクをつけます。 // @version 0.0.1.20140518104307 // @downloadURL https://update.greasyfork.icu/scripts/1185/yazztter%20Words%20link.user.js // @updateURL https://update.greasyfork.icu/scripts/1185/yazztter%20Words%20link.meta.js // ==/UserScript== (function() { var repalceSite = "http://buzztter.com/ja/k/"; // var repalceSite = "http://pcod.no-ip.org/yats/search?query="; でもいいかも // http://d.hatena.ne.jp/javascripter/20080805/1217912008 var getElementsByClassNameS = function(className, doc) { var names = className.split(/\s+/), all = doc.getElementsByTagName("*"), memo = {}, ret = []; for (var i = 0, l = all.length, elem, iname, flag; i < l; i++) { elem = all[i]; iname = elem.className; if (! (iname in memo)) memo[iname] = " " + iname.toLowerCase() + " "; for (var j = 0, jname; j < names.length; j++) { jname = names[j]; if (! (jname in memo)) memo[jname] = " " + jname.toLowerCase() + " "; if (flag = memo[iname].indexOf(memo[jname]) != -1) continue; else break; } if (flag) ret[ret.length] = elem; } return ret; } var resTwit = getElementsByClassNameS("entry-content", document); for (var i = 0; i < resTwit.length; i++) { var wordYaz = resTwit[i].textContent.split(', ') var tmpYaz = []; for (var j = 0; j < wordYaz.length; j++) { tmpYaz.push(wordYaz[j].link(repalceSite + wordYaz[j])) } resTwit[i].innerHTML = tmpYaz; } })();