You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Edge浏览器JavaScript报错:TypeError: Function expected 问题咨询

解决Edge浏览器中TypeError: Function expected的问题

嘿,我帮你分析下代码里可能触发这个错误的几个点:

1. 未完成的Promise错误回调

首先一眼就看到你代码里的then方法第二个参数只写了fu...,这明显是个没写完的函数定义啊!Edge在解析这种不完整的语法时,会把它当成一个未定义的变量,而不是预期的错误处理函数,直接就抛出Function expected了——这应该是最直接的问题。

修复方式:
要么补全完整的错误处理函数,比如:

srcToFile(blob, fileName, "image/jpeg")
  .then(function (file) {
    var formData = new FormData();
    formData.append("file", file);
    PassingBlobToServer(formData);
  }, function(error) {
    // 这里可以加错误日志,方便排查
    console.error("图片转换失败:", error);
  })

要是暂时不需要处理错误,也可以直接省略第二个参数,改用.catch()来统一捕获错误,这样代码更清晰:

srcToFile(blob, fileName, "image/jpeg")
  .then(function (file) {
    var formData = new FormData();
    formData.append("file", file);
    PassingBlobToServer(formData);
  })
  .catch(function(error) {
    console.error("处理图片时出现异常:", error);
  });

2. Edge对DOM元素的兼容性细节

另外,旧版Edge(基于EdgeHTML内核的那种)在处理DOM属性时和Chrome/Firefox有细微差异:

  • 先确认value.cells[5]确实存在:表格行的列索引是从0开始的,要是你的表格每行不足6列,value.cells[5]会是undefined,调用innerText会出错,虽然这个错误通常是“无法读取undefined的属性”,但也可能间接引发后续的函数预期错误。
  • 可以试试把innerText换成textContent,innerText会受元素渲染状态影响,而textContent是标准的DOM文本获取属性,在旧Edge里兼容性更好:
var blob = value.cells[5].textContent;

3. 自定义函数srcToFile的兼容性检查

如果srcToFile是你自己写的函数,得确认它在Edge里能正常返回Promise。旧版Edge对ES6的Promise特性支持不全,比如函数里要是用了箭头函数、async/await但没转译,或者没有正确返回Promise实例,都可能导致回调函数不被识别,抛出“预期函数”的错误。

建议检查srcToFile的实现,必要时用Babel转译ES6+语法,或者给Promise加个polyfill,确保Edge能正常处理。


内容的提问来源于stack exchange,提问作者Nguyễn Minh Vương

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:31:53