我制作了一个从index.js开始的nodejs应用程序。 然后,index.js启动puppeteer并通过addscripttag函数将bot.js注入(inject)headless-api页面。
我让index.js在注入(inject)javascript之前设置了一个cookie来传递初始值,但我需要更常见的方式来交换数据。
我想到了两种方法;第一个是使用 cookie,第二个是通过套接字连接进行联网。
是否有其他方式在index.js(node)和puppeteer(headless chrome)之间发送和接收数据?
最佳答案
首先,puppeteer 是 Nodejs 端应用程序,因此它们有一个环境,您不需要“发送”任何内容。只需像在任何其他 JS 代码中那样传递数据即可。我假设你想在页面和nodejs之间传输数据。
要将数据从nodejs传递到页面,请使用page.evaluate 。您可以在页面上下文中调用任何代码,从简单地设置一些变量到直接调用带有必要参数的任何函数。
要发起从页面端到nodejs的传输,首先要注册一个nodejs端回调函数 page.exposeFunction然后从页面代码中调用它,它将在nodejs上下文中执行。就像前面的情况一样,其他一切都取决于该函数的代码。它可以像将传递给它的任何参数存储在某个变量中一样简单,或者直接对数据执行几乎任何您想要的操作。
关于javascript - 如何在nodejs和puppeteer之间交换数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56829382/