Javascript 如何在Firefox中使用此代码?目前,它只适用于Chrome

Javascript 如何在Firefox中使用此代码?目前,它只适用于Chrome,javascript,Javascript,我正在制作一个简单的todolist应用程序,其他一切都很好,但我的删除项代码只在chrome浏览器中工作,没有其他浏览器。我甚至在最新的firefox版本中尝试过,但它似乎不起作用,我也不知道为什么 代码如下: function removeTask(e) { if (e.target.classList.contains("del")) { //e.target.parentElement.remove(); let item = e.target.p

我正在制作一个简单的todolist应用程序,其他一切都很好,但我的删除项代码只在chrome浏览器中工作,没有其他浏览器。我甚至在最新的firefox版本中尝试过,但它似乎不起作用,我也不知道为什么

代码如下:

function removeTask(e) {
  if (e.target.classList.contains("del")) {
    //e.target.parentElement.remove();
    let item = e.target.parentElement.childNodes[0].textContent
      .replace(/[\n\r]+|[\s]{2,}/g, " ")
      .trim();

    console.log(item);

    let url = `/items/${item}`;
    http
      .delete(url)
      .then(reloader())
      .catch((err) => console.log(err));

    function reloader() {
      location.reload();
    }
  }
}
上面的代码看起来不错,但每当我尝试删除一个项目时,它在chrome中工作,但在firefox(最新版本)和edge中不工作。我还没有检查其他浏览器

(更新:有时它会删除一个项目,但当我尝试删除另一个项目时,它不起作用)

在这里,您可以立即调用
reloader()
,并将其返回值传递给
。然后()
。相反,我认为应该在
http.delete()
请求返回响应后重新加载页面。要执行此操作,请将函数传递到
。然后
,而不是先调用它:

    http
      .delete(url)
      .then(reloader)
      .catch((err) => console.log(err));
由于
reloader()
只调用
location.reload()
,因此可以像这样摆脱
reloader()

    http
      .delete(url)
      .then(location.reload)
      .catch((err) => console.log(err));

“我甚至在最新的firefox版本中尝试过它,但它似乎不起作用,我也不知道为什么。”当你在firefox中运行它时会发生什么?您在控制台中有任何错误吗?如果是,它们是什么?如果没有,会发生什么,你希望它做什么不同的事情?好吧,用和chrome相同的方式工作。。i、 e.删除列表项。它不是在firefox或edge中删除项目,而是在chrome中删除项目wrong@epascarello我懂了。但是,它在chrome中工作。不管怎样,我应该将其更改为什么?您正在执行该函数并设置它返回的值。它应该是一个参考。现在,它正在删除所有项目。除了one@ohnope有关调试代码的提示,请阅读。
    http
      .delete(url)
      .then(location.reload)
      .catch((err) => console.log(err));