H::K on anond
@@ -1,9 +1,34 @@
/*
- * @title 匿名ダイアリーのキーワードのアレ
- * @description 匿名ダイアリーのキーワードへのリンクが使いにくいんじゃ
- * @include http://anond.hatelabo.jp/
+ * @title H::K on anond
+ * @description replace link to Hatena Keyword on AnonymousDiary w/ Pager Extentions
+ * @include http://anond.hatelabo.jp/*
+ * @contributor azyobuzin http://let.hatelabo.jp/azyobuzin/let/hLHWqbmliOYD (Fork of)
* @license MIT License
- * @require
+ * @javascript_url
*/
-document.getElementsByClassName("keyword").forEach(function(value) { value.host = "d.hatena.ne.jp"; })
+(function() {
+ var forEach = Array.prototype.forEach;
+
+ var replaceLinks = function(context) {
+ forEach.call(context.querySelectorAll("a.keyword"), function(value) {
+ value.host = "d.hatena.ne.jp";
+ });
+ };
+ replaceLinks(document);
+
+ // c.f.
+ // https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver
+ // http://blog.gutyan.jp/entry/2014/09/06/MutationObserver
+ var MutationObserver = window.MutationObserver ||
+ window.WebkitMutationObserver; // webkit-* e.g. Safari 6
+ var observer = new MutationObserver(function callbackhell(mutations) {
+ mutations.forEach(function(mutation) {
+ forEach.call(mutation.addedNodes, function(node) {
+ replaceLinks(node);
+ });
+ });
+ });
+ // IDKWTD filter by selector(not attributeFilter) e.g. "a.keyword"
+ observer.observe(document, { childList: true, subtree: true });
+}());
/*
* @title H::K on anond
* @description replace link to Hatena Keyword on AnonymousDiary w/ Pager Extentions
* @include http://anond.hatelabo.jp/*
* @contributor azyobuzin http://let.hatelabo.jp/azyobuzin/let/hLHWqbmliOYD (Fork of)
* @license MIT License
* @javascript_url
*/
(function() {
var forEach = Array.prototype.forEach;
var replaceLinks = function(context) {
forEach.call(context.querySelectorAll("a.keyword"), function(value) {
value.host = "d.hatena.ne.jp";
});
};
replaceLinks(document);
// c.f.
// https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver
// http://blog.gutyan.jp/entry/2014/09/06/MutationObserver
var MutationObserver = window.MutationObserver ||
window.WebkitMutationObserver; // webkit-* e.g. Safari 6
var observer = new MutationObserver(function callbackhell(mutations) {
mutations.forEach(function(mutation) {
forEach.call(mutation.addedNodes, function(node) {
replaceLinks(node);
});
});
});
// IDKWTD filter by selector(not attributeFilter) e.g. "a.keyword"
observer.observe(document, { childList: true, subtree: true });
}());
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。