2017-05-15 1 views
0

Ich versuche, Captcha in C# -Anwendung zu re-implementieren. Problem, weil keine Erfahrung in JS.mit Jura-Code bewerten, die HTML ändern

Die GET-Anfrage gibt Daten, die das captcha src-Tag enthalten, standardmäßig leer.

... 
<div class="context"><img src="" id="capchaVisual" alt="loading..."></div> 
... 

Es gibt auch einige Javascript, das Captcha füllt, wie folgt aus:

function() { 
var h = window.location.href; 
if (h.indexOf("mytag") + 1) { 
    var scr = $("#capchaVisual").attr("src"); 
    $("#capchaVisual").attr("src", scr + "data:image/jpeg;base64,/9j/MYCAPTCHADECODED..."); 
} 

Meine Schritte in C# Anwendung:

  1. laden json mit Daten und Skripte über WebClient und JavaScriptSerializer. Erledigt. Ergebnis gespeichert in jsonobject Antwort, wobei answer.data html enthält, und answer.e - Skripts auszuführen.
  2. Try geladene Skripte über Jurassic auszuführen:

    var engine = new Jurassic.ScriptEngine(); 
        engine.EnableDebugging = true; 
        //engine.SetGlobalValue("window", answer.data); 
    
        foreach (var line in answer.e) 
        { 
         var evalresult = engine.Evaluate(line); 
         string t = evalresult.ToString(); 
        } 
    

    fehlgeschlagen mit: Reference: Fenster nicht definiert.
    Wenn Zeile 3 engine.SetGlobalValue("window", answer.data) auskommentiert, erhalten Sie einen weiteren Fehler: TypeError: undefined kann nicht in ein Objekt konvertiert werden.

Antwort

0

Antwort gefunden in old Jurassic issues. Meine Skripte verwendet DOM Window-Objekt, aber:

paulbartrum 26. Januar 2011 um 11:01 Uhr

No, sorry!

Both of those frameworks rely on the existance of a browser DOM. By default, Jurassic can only run "pure javascript" like the CoffeeScript compiler.

Basically if a script does not reference "document" or "window" it will probably work.

Verwandte Themen