0

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が理想的ですが、何か提案をいただければ幸いです。

4

2 に答える 2

0

JavaScript を使用して画像サイズを取得することは、絶対確実ではありません。元の画像サイズとは異なる画像サイズをハードコーディングして、システムをだますことができます。CSS ファイルから画像サイズを取得する場合は、ファイルをサーバーにダウンロードして、その方法でサイズを確認する必要があります。

getimagesize();PHP がゲームの場合は、 関数 を使用してみてください。

于 2013-04-03T12:59:56.603 に答える