TAB imgs
@@ -1,6 +1,6 @@
/*
- * @title each skeleton
- * @description abstract each something on Dynamic Page
+ * @title TAB imgs
+ * @description append tab navigation to image
* @include http://*
* @include https://*
* @license MIT http://opensource.org/licenses/MIT
@@ -25,13 +25,13 @@
return slice(node.querySelectorAll(nodeName));
};
- var each = function (nodes) {
- nodes.forEach(function (node) {
- // write your code
+ var each = function (imgs) {
+ imgs.forEach(function (img) {
+ img.tabIndex = img.tabIndex > -1 ? img.tabIndex : 0;
});
};
- each(filter(context, '*'));
+ each(filter(context, 'img'));
};
handler(document.body);
/*
* @title TAB imgs
* @description append tab navigation to image
* @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 (imgs) {
imgs.forEach(function (img) {
img.tabIndex = img.tabIndex > -1 ? img.tabIndex : 0;
});
};
each(filter(context, 'img'));
};
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 です。