2017-05-15 1 views
0

C# 응용 프로그램에서 captcha를 가져 오는 중 다시 구현하려고합니다. 문제가 있습니다. JS에 대한 경험이 없기 때문입니다.jurassic js 코드로 평가하여 html을 수정합니다.

GET-request는 기본적으로 captcha src 태그가 포함 된 데이터를 반환합니다. C# 응용 프로그램에서

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..."); 
} 

내 단계 : WebClientJavaScriptSerializer를 통해 데이터 및 스크립트

  1. 로드 JSON

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

    는 또한 다음과 같이 보안 문자를 채우고 일부 자바 스크립트를 반환합니다. 끝난. 결과는 jsonobject 에 저장, 답장에는 html이 있고 답변 .e - 실행할 스크립트.

  2. 봅니다 쥬라기를 통해로드 된 스크립트를 실행합니다 : ReferenceError가 :

    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(); } 

    함께 실패 창이
    를 정의되어 있지 않습니다.
    3 행의 주석을 없애려면 anotwer 오류가 발생합니다. TypeError : undefined를 객체으로 변환 할 수 없습니다.

답변

0

대답은 old Jurassic issues에 있습니다. 내 스크립트는 DOM 창 개체를 사용하지만 :

paulbartrum 2011년 1월 26일 오전 11시 1분

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.

에서