WorldSpace Sync を使用して会社の Web サイトをスキャンし、ブランド違反を検出しています。スタイルシートで使用されている画像に関する情報 (幅、高さなど) を取得したいと考えています。
WorldSpace を使用すると、ユーザーは XPath から返されたノードで単純な JavaScript コードを実行できます (//*[@rel="stylesheet"]
私の場合)。以下を使用して、各画像の URL を取得できます。
function evaluateNodes( nodes, optionValue) {
var viols = [];
var violation = false;
var relatedNodes = [];
var additionalInfo = "";
var reEx = new RegExp( "(url[(].*?[)]).*;", "gi");
try {
debugOut( "TRYING: "+nodes.length);
for ( var i = 0, _len = nodes.length; i < _len; i++) {
for ( var j = 0, _ilen = nodes[i].ownerDocument.styleSheets.length; j < _ilen; j++) {
var styleSheet = nodes[i].ownerDocument.styleSheets[j];
additionalInfo = "";
violation = false;
for ( var k = 0, _iilen = styleSheet.cssRules.length; k < _iilen; k++) {
var cssRule = styleSheet.cssRules[k];
switch( cssRule.type) {
case 1:
varText = cssRule.cssText;
while (matches = reEx.exec( varText )) {
violation = true;
additionalInfo+=" IMAGE: "+matches[1]+"\n"
}
break;
case 3:
// import
break;
default:
break;
}
}
if ( violation) {
viols.push( {
node: styleSheet.ownerNode
,additionalInfo: additionalInfo
,relatedNodes: relatedNodes
});
}
}
}
} catch( ee) {
debugOut( "EXCEPTION:"+ee);
}
return viols;
}
以下は、上記の出力例です。
IMAGE: url("/images/lightbox/tile.png")
IMAGE: url("/images/lightbox/close-lightbox.jpg")
IMAGE: url("/images/lightbox/tile.png")
IMAGE: url("/images/news/lightbox-image-header.jpg")
IMAGE: url("/images/lightbox/close-lightbox.jpg")
私は JavaScript の専門家ではないので、これらの URL を取得した後、どうすればよいかわかりません。画像の幅の使用に関するすべての質問のようですjQuery
が、WorldSpace では使用できないと思います。
Fiddleが理想的ですが、何か提案をいただければ幸いです。