今天与大家分享一下,在我们的客户端中如何执行java script代码。
再次声明:
cef源码中,每个函数前面的注释一定要仔细阅读!!!!
// Execute a string of JavaScript code in this. The |script_url|
// parameter is the URL where the script in question can be found, if any.
// The renderer may request this URL to show the developer the source of the
// error. The |start_line| parameter is the base line number to use for error
// reporting.
///
/*--cef(optional_param=script_url)--*/
virtual void ExecuteJavaScript(const CefString& code,
const CefString& script_url,
int start_line) =0;
最简单的调用方式:
1获得main frame
CefRefPtr<CefFrame> main_frame = browser->GetMainFrame();
什么又是GetMainFrame
// Returns the main (top-level) frame for the browser window.
///
/*--cef()--*/
virtual CefRefPtr<CefFrame> GetMainFrame() =0;
意思就是通过top-level来执行调用js代码的。
这里还是要等一等,我们看到用了browser,这又是什么鬼呢?
CefRefPtr<CefBrowser> browser = g_web_browser_client->GetBrowser();
换言之,browser就是指向我们创建的浏览器的一个句柄,或是叫指针。
下面就是最简单的执行js:
CefRefPtr<CefBrowser> browser = ...;
CefRefPtr<CefFrame> frame = browser->GetMainFrame();
frame->ExecuteJavaScript("alert('ExecuteJavaScript works!');",
frame->GetURL(), 0);
接下来又跟大家一起学习如何执行本地的js代码,以及如何获取js代码的callback