一起学libcef--让你的cef执行js代码

今天与大家分享一下,在我们的客户端中如何执行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

你可能感兴趣的:(JavaScript,libcef)