Puppeteer 中文文档v25.8.0

JSHandle 类

表示对 JavaScript 对象的引用。可以使用 Page.evaluateHandle() 创建实例。

句柄会阻止被引用的 JavaScript 对象被垃圾回收,除非句柄被特意释放。当关联的框架被导航离开或父上下文被销毁时,JSHandle 会自动释放。

句柄可以用作任何求值函数的参数,例如 Page.$eval()Page.evaluate()Page.evaluateHandle()。它们会被解析为其引用的对象。

签名

export declare abstract class JSHandle<T = unknown>

备注

此类的构造函数被标记为内部。第三方代码不应直接调用构造函数,也不应创建继承 JSHandle 类的子类。

示例

const windowHandle = await page.evaluateHandle(() => window);

属性

属性

修饰符

类型

说明

_

optional

T

用于对 JSHandle 进行名义类型化。

move

() => this

方法

方法

修饰符

说明

[asyncDisposeSymbol]()

[disposeSymbol]()

asElement()

如果该句柄是 ElementHandle 的实例,则返回 null 或句柄本身。

dispose()

释放句柄引用的对象,以便进行垃圾回收。

evaluate(pageFunction, args)

以当前句柄作为第一个参数求值给定的函数。

evaluateHandle(pageFunction, args)

以当前句柄作为第一个参数求值给定的函数。

getProperties()

获取一个表示当前句柄属性的句柄映射。

getProperty(propertyName)

从引用的对象中获取单个属性。

getProperty(propertyName)

jsonValue()

一个表示引用对象可序列化部分的普通对象。

备注:

如果对象具有 toJSON 函数,则不会调用它。

remoteObject()

提供对支撑此句柄的 Protocol.Runtime.RemoteObject 的访问。

toString()

返回 JSHandle 的字符串表示。

备注:

在调试期间很有用。