2016-12-14 9 views
0
궁금

- SWT 브라우저가 실행될 때 JavaScript가 "성공"입니까?

  • 어떻게 return booleanorg.eclipse.swt.browser.Browser 방법은 실행 호출 할 때, 결정됩니까?
  • javaScript 실행이 "성공"으로 간주되는시기는 언제입니까?
  • 특히 비동기 함수를 시작하고 응답을 기다리면 어떻게됩니까?
  • 브라우저가 콜백을 대기합니까?
  • 빈 호출 스택을 기반으로하고 성공 했나요?

미리 감사드립니다.

편집 : 난 그냥 확인
: 콜백을 기다리지 않고 브라우저를

답변

0

는 지금까지 내가 소스 코드에 파고에서 말할 수있는 결과는 다음 방법 중 하나에 의해 결정됩니다 호출 할 :

  • 파이어 폭스 : JS_EvaluateScriptForPrincipals

    스크립트를 컴파일 * rval에가 SCR에서 처리 마지막 실행 문 식의 값을 수신하고, 성공적으로 실행되면 ipt 및 JS_EvaluateScriptForPrincipals 또는 JS_EvaluateUCScriptForPrincipals는 JS_TRUE를 반환합니다. 그렇지 않으면 JS_FALSE를 반환하고 * rval에 남아있는 값은 정의되지 않습니다.

  • 웹킷 : 예외가 발생하는 경우 평가 스크립트, 또는 NULL의 결과 JSEvaluateScript

    값.

는 그래서 에러가 없다면, true가 반환됩니다, 같은 소리.


은 지금까지 당신의 질문의 비동기 부분에 관한 한, Browser는 비동기 작업의 실행을 기다리지 않습니다. 그러나 수행 할 수있는 작업은 BrowserFunction (this example에 나와 있음)을 정의하고 비동기 작업이 완료되면 JavaScript에서 해당 메소드를 호출하는 것입니다.

+0

우선 빠른 응답에 감사드립니다. 내 문제는 여기에 "성공하고 성공적으로 실행됩니다."이며, 성공한 것으로 간주되는 것을 지정하지 않습니다. 함수를 비동기 적으로 호출하면 (예 : setTimeout을 통해) 스크립트가 계속 실행되고 지정된 시간이 만료되고 setTimeout 함수에 전달 된 콜백이 실행될 때까지 호출 스택이 비어있게됩니다. 제 질문은 브라우저가이 콜백을 기다리거나 스크립트 실행이 끝나면 성공적으로 실행될 것이라고 말합니까? – chris

+0

@chris 비동기 작업이 실패하면 어떻게되는지보십시오. 내 생각 엔 비동기 호출을 보냈을 때 돌아올 것이기 때문에 'true'를 반환 할 것이지만 잘못 될 수 있습니다. – Baz

+0

방금 ​​확인한 바 : 브라우저가 콜백 호출을 기다리지 않습니다 – chris