首页 > 解决方案 > 无头 Chrome 执行 Javascript

问题描述

我想在服务器端渲染我的 React Application。所以请求首先到达我的 Web 服务器(用 Rust 编写)。我汇总了生成 html 所需的所有数据。

之后,我想使用无头 Chrome 执行我的 React 应用程序。

无头 chrome 的每个示例都向我展示了“导航到页面”。

以 Nodejs 为例,使用 Puppeteer 库

    (async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://news.ycombinator.com', {waitUntil: 'networkidle2'});
  await page.pdf({path: 'hn.pdf', format: 'A4'});

  await browser.close();
})();

我不想导航到 URL,而只想使用无头 Chrome 作为 JavaScript 引擎,由 JavaScript 执行它。

我看了看,但无处可以找到这样的例子。

标签: javascriptreactjsserver-side-renderinggoogle-chrome-headlessheadless-browser

解决方案


好吧,快速浏览一下pupette API就可以看到:

  page.evaluate(pageFunction[, ...args])

    pageFunction <function|string> Function to be evaluated in the page context
    ...

API 的确切链接:https ://github.com/puppeteer/puppeteer/blob/v3.1.0/docs/api.md#pageevaluatepagefunction-args


推荐阅读