1

私はこの特定のリンクを理解しようとしています。ある種のJavaスクリプトを起動するのではないかと思いますが、よくわかりません。一日の終わりに私が欲しいのは、URLを抽出することです。

htmlタグは次のとおりです。

<a href="#" 
    onclick="if(typeof jsfcljs == 
        'function' {jsfcljs(document.getElementById('resultadoForm'),
    {'resultado:0:j_id234':'resultado:0:j_id234'},'');}
    return false">
        11024968
</a>

そして、これに到達するには、に移動しhttp://www.dataescolabrasil.inep.gov.br/dataEscolaBrasil/home.seam、「Código」に「11024968」と入力してから、フォーム(「Pesquisar」)を送信します。上記のリンクは「11024968」用です。

また、

<script type="text/javascript" language="Javascript">function dpf(f) {var adp = f.adp;if (adp != null) {for (var i = 0;i < adp.length;i++) {f.removeChild(adp[i]);}}};function apf(f, pvp) {var adp = new Array();f.adp = adp;var i = 0;for (k in pvp) {var p = document.createElement("input");p.type = "hidden";p.name = k;p.value = pvp[k];f.appendChild(p);adp[i++] = p;}};function jsfcljs(f, pvp, t) {apf(f, pvp);var ft = f.target;if (t) {f.target = t;}f.submit();f.target = ft;dpf(f);};</script>

ですから、「11024968」というURLのURLをフォロー(または抽出)する方法を誰かに説明していただければ幸いです。

4

1 に答える 1

2

そのリンクは空のアンカーを指しています。これは通常、JavaScriptで処理されるリンクに使用されます。したがって、JavaScriptが失敗した場合は、ハッシュタグだけが現在のURLに追加されます。

魔法はjsfcljs()JavaScript関数のコードで起こります。コードがなければ、今はこれ以上言うことはできません。

コードを再フォーマットして、より適切な名前を付けましょう。

function dpf(f) {                  // let's rename this to removeParameters
    var adp = f.adp;               // element store from apf (addParameters)
    if(adp != null) {              // check if the parematers needs to be removed
        for(var i=0; i<adp.length; i++) { // interates thrue the known paramters
            f.removeChild(adp[i]); // removes a child
        }
    }
};
function apf(f, pvp) { // let's rename this to addParameters
    var adp = new Array();
    f.adp = adp;
    var i = 0;
    for(k in pvp) { // iterates thrue the json structure
        // appends all parameters from the json structure to the
        // element store (apd) and to the given formular (f)
        var p = document.createElement("input");
        p.type = "hidden";
        p.name = k;
        p.value = pvp[k];
        f.appendChild(p);
        adp[i++] = p;
    }
};
function jsfcljs(f, pvp, t) { // let's rename this to postJsonData
    apf(f, pvp);              // add paramaters
    var ft = f.target;        // store orginal target
    if(t) {
        f.target = t;         // set new target if given
    }
    f.submit();               // submit the form
    f.target = ft;            // restore target
    dpf(f);                   // remove added parameters
};
于 2013-03-04T19:51:31.203 に答える