TAB imgs
/*
* @title each skeleton
* @description abstract each something on Dynamic Page
* @include http://*
* @include https://*
* @license MIT http://opensource.org/licenses/MIT
* @javascript_url
*/
(function () {
// slice binding c.f.
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice
var slice = Function.prototype.call.bind(Array.prototype.slice);
var handler = function (context) {
// like a NodeFilter; c.f.
// https://developer.mozilla.org/en-US/docs/Web/API/NodeFilter
var filter = function(node, nodeName) {
if (node.nodeName.toLowerCase() === nodeName.toLowerCase()) {
return [node];
}
if (!node.querySelectorAll) { // alt. document.ELEMENT_NODE
return [];
}
return slice(node.querySelectorAll(nodeName));
};
var each = function (nodes) {
nodes.forEach(function (node) {
// write your code
});
};
each(filter(context, '*'));
};
handler(document.body);
// c.f. MutationObserver
// https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver
// http://caniuse.com/#feat=mutationobserver
new MutationObserver(function (records) {
records.forEach(function (record) {
handler(record.target);
});
}).observe(document.body, { childList: true, subtree: true });
})();
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。