在 Cloudflare worker 上使用 HTMLRewriter 设置属性

Setting attribute using HTMLRewriter on Cloudflare worker

我正在尝试通过 Cloudflare worker 设置我的#email 字段的值属性。

我将我的电子邮件定义为 test@test.com,但如何将其发送到 ElementHandler

目前我可以将 value 属性设置为 XXXX,这成功了。

async function handleRequest(request) {

  const newResponse = new Response(response.body, response)

  const email = 'test@test.com';

  return new HTMLRewriter()
     .on("#email", new ElementHandler())
     .transform(newResponse)

}

class ElementHandler {
   element(e) {
     e.setAttribute('value', 'XXXX')
   }
}

addEventListener("fetch", event => {
  event.respondWith(handleRequest(event.request))
})

你可以给你的 ElementHandler class 一个构造函数,它接受你存储在对象属性中的参数:

class ElementHandler {
  constructor(value) {
    this.value = value;
  }

  element(e) {
    e.setAttribute('value', this.value)
  }
}

然后构造如下:

new ElementHandler(email)