1

我对使用 HTMLRewriter 完全陌生,但有一些一般的 js/html 经验。我的任务相对简单,但我真的不确定 HTMLRewriter 是如何工作的。我需要做的是;

检索静态 HTML 页面 从之前部署的 JSON 响应中获取链接 使用 HTMLRewriter 将这些链接添加到静态 HTML 页面 从 Worker 返回转换后的 HTML 页面 我有 url “https://static-links-page.signalnerve。 workers.dev/”,但它不是本地的。所以我想知道的是;为了使用 HTMLRewriter 进行更改,复制/存储此静态 html 页面的正确方法是什么?

其次,我应该如何使用 HTMLRewriter 将我自己的 JSON url 数组添加到检索到的 HTML 页面中?我读到了 setInnerContent 函数,但不确定这是否是我应该使用的。

最后,我很确定这很简单,但是返回修改后的 html 页面的正确方法是什么?

同样,我的经验是一起编写 html/js,所以我几乎没有在单个 js 文件中做所有事情的经验,据我所知,这是 cloudflare 的最大好处之一。我可能会错误地处理这个问题,提出错误的问题,或者完全偏离轨道,因此非常感谢任何帮助。

到目前为止,我的代码虽然存在明显缺陷,但如下:

addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request))
})
/**
 * Respond with hello worker text
 * @param {Request} request
 */

 var myArray = [
   {
     "name": "Github", "url": "https://github.com/"
   },

   {
     "name": "LinkedIn", "url": "https://linkedin.com/"
   },

   {
     "name": "Firebase", "url": "https://test-login-1573079166139.firebaseapp.com/"
   }
 ]



async function handleRequest(request) {

  //I am not sure if this is the correct way to copy/store a webpage
  var basic_response = fetch('https://static-links-page.signalnerve.workers.dev');

  //I know I have to do something here with this .on() function
  const rewriter = new HTMLRewriter(basic_response)
    .on()
  const url = new URL(request.url)
  console.log(rewriter);
  var pathname = url.pathname;

  if (pathname == '/links')
  {

    var obj =  JSON.stringify (myArray);

    return new Response(obj, {
      headers: { 'content-type': 'application/json' },
    })
  }

  else
  {
    var result =  JSON.stringify (rewriter);

    //This does not work, and I am not sure what the correct way
    //to return my modified webpage would be

    return new Response(rewriter, {
      headers: { 'content-type': 'application/json' },
    })
  }
}
4

0 回答 0