跳到主要内容
版本: 23.11.1

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);

属性

属性

修饰符

类型

描述

_

可选

T

用于名义类型化 JSHandle

move

() => this

方法

方法

修饰符

描述

asElement()

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

dispose()

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

evaluate(pageFunction, args)

使用当前句柄作为其第一个参数评估给定的函数。

evaluateHandle(pageFunction, args)

使用当前句柄作为其第一个参数评估给定的函数。

getProperties()

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

getProperty(propertyName)

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

getProperty(propertyName)
jsonValue()

一个表示引用对象的序列化部分的原生对象。

备注

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

remoteObject()

提供对此句柄支持的 Protocol.Runtime.RemoteObject 的访问权限。

toString()

返回 JSHandle 的字符串表示形式。

备注

在调试期间很有用。