跳至主要内容
版本:22.5.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);

属性

属性修饰符类型说明
_可选T用于对 JSHandle 进行标称类型化。
move() => this

方法

方法修饰符说明
asElement()如果句柄是 ElementHandle 的实例,则为 null 或句柄本身。
dispose()释放句柄引用的对象以便进行垃圾回收。
evaluate(pageFunction, args)使用当前句柄作为其第一个参数来评估给定函数。
evaluateHandle(pageFunction, args)使用当前句柄作为其第一个参数来评估给定函数。
getProperties()获取表示当前句柄的属性的句柄映射。
getProperty(propertyName)从引用的对象中获取单个属性。
getProperty(propertyName)
jsonValue()表示引用的对象的序列化部分的普通对象。
remoteObject()提供对 Protocol.Runtime.RemoteObject 的访问,该对象支持此句柄。
toString()返回 JSHandle 的字符串表示形式。