0

我制作了一个从 index.js 开始的 nodejs 应用程序。然后,index.js 启动 puppeteer 并通过 addscripttag 函数将 bot.js 注入到 headless-api 页面上。

我让 index.js 在注入 javascript 之前设置了一个用于传递初始值的 cookie,但我需要更常用的方式来交换数据。

我想了两种方法;第一个是使用cookie,第二个是通过套接字连接联网。

在 index.js(node) 和 puppeteer(headless chrome) 之间发送和接收数据还有其他方法吗?

4

1 回答 1

2

首先,puppeteer 是 nodejs 端应用程序,所以它们有一个单一的环境,你不需要“发送”任何东西。只需像在任何其他 JS 代码中那样传递数据。我假设您想在页面和 nodejs 之间传输数据。

要将数据从 nodejs 传递到页面,请使用page.evaluate。您可以在页面上下文中调用任何代码,范围从简单地设置一些变量到直接调用具有必要参数的任何函数。

要发起从页面端到nodejs的传输,首先在page.exposeFunction中注册一个nodejs端的回调函数,然后从页面代码中调用它,它将在nodejs上下文中执行。就像之前的情况一样,其他一切都取决于该函数的代码。它可以像将传递给它的任何参数存储在某个变量中一样简单,或者几乎可以根据需要直接使用数据执行。

于 2019-07-01T02:30:07.700 回答