CSSセレクタで計算済みのstyleプロパティの値も検索できたら便利かも
検索対象は、style属性に書かれている値ではなく、リアルな(計算済みのstyleプロパティの)値
# IEなら、element.currentStyle, それ以外なら document.defaultView.getComputedStyle(element, "") の値
var nodeList = document.body.querySelectorAll("div > p[color=red]"); または var nodeList = document.body.querySelectorAll("div > p[style.color=red]");
width, height, border プロパティは、img.width などと紛らわしいから、"style.width" と明記しなきゃだめだけど、style.color や style.position などは、"style." をつけずにそのまま書けるとうれしいかも。
範囲指定ができると、colorなどで探しやすくなるかも。
var nodeList = document.body.querySelectorAll("div > p[color<=#00FF00][color>=#000000]"); とか var nodeList = document.body.querySelectorAll("div > p[color=#000000-#00FF00]");
正規表現でスタイルが検索できると探しやすくなるかも(正規表現構文自体はサポート済み)
var nodeList = document.body.querySelectorAll("div > p[position?=/static|fixed/]"); とか var nodeList = document.body.querySelectorAll("div > p[background?=/hoge.gif|hoge.png/]");
これらができると、背景色と同色のいかがわしい隠しリンクを全て表示したり、画面外にとばして見えなくしてある要素を簡単にどうにかできるかもね。
var bgcolor = uu.style(document.body).backgroundColor; uu.css("[color=%s]".replace(/%s/, bgcolor)).forEach(function(v) { v.style.color = bgcolor ^ 0xFFFFFF; // 可視化する(背景色の補色をセット) });
var bgcolor = uu.style(element).backgroundColor; uu.css("[position=absolute][top<=-100][left<=-100]").forEach(function(v) { v.style.cssText = "top:0;left:0"; // 隠し要素を画面内に強制移動 });
Mutation Event と組み合わせれば「隠しリンクが挿入されたら xxx する」が簡単に実現可能になりますね(楽天 ad4U とかね)。