결과를 반환하지 않는 JavaScript 메소드 호출
참고
https://github.com/cefsharp/CefSharp/wiki/General-Usage#javascript-integration
javascript 실행은 V8Context 내에서만 실행할수 있습니다.
JavaScript 실행에 몇가지 알아야 되는점
.스크립트는 프레임 수준에서 실행되며 모든 페이지에는 하나 이상의 프레임 ( MainFrame)이 있습니다.
.프레임에 JavaScript가 포함되어 있지 않으면 V8Context생성 되지 않습니다
.프레임이 로드 된 후 스크립트를 실행하는 컨텍스트가 없는 프레임의 경우를 사용하여 V8Context를 생성 할 수 있습니다 IFrame.ExecuteJavaScriptAsync
페이지 로드가 완료되면 배경색을 red 로 변경.
//페이지로드가 완료 될 때까지 기다립니다 (모든 리소스가로드되고 렌더링이 계속 진행될 수 있음).
browser.LoadingStateChanged += (sender, args) =>
{
//Wait for the Page to finish loading
if (args.IsLoading == false)
{
browser.ExecuteScriptAsync("alert('All Resources Have Loaded');");
browser.ExecuteScriptAsync("document.body.style.background = 'red';");
}
};
MainFrame 로드되면 배경색을 blue 로 변경 과 javascript aa() 메소드 호출
// MainFrame 로드를 완료 할 때까지 기다립니다.
browser.FrameLoadEnd += (sender, args) =>
{
//Wait for the MainFrame to finish loading
if (args.Frame.IsMain)
{
args.Frame.ExecuteJavaScriptAsync("alert('MainFrame finished loading');");
browser.ExecuteScriptAsync("document.body.style.background = 'blue';");
browser.ExecuteScriptAsync("aa();");
}
};
웹페이지의 Javascript
<script>
function aa() {
alert("aaaaaaa");
}
</script>
'프로그래밍 > c#' 카테고리의 다른 글
JavaScript 에서 C# 클래스 호출하는 방법 (0) | 2021.11.26 |
---|---|
C# cefSharp 이용시 개발자도구 보고 싶을때 (0) | 2020.10.06 |
c# 에서 javascript 바인딩하는 방법2 (0) | 2020.10.06 |