我有以下资料……

chrome.extension.sendRequest({
  req: "getDocument",
  docu: pagedoc,
  name: 'name'
}, function(response){
  var efjs = response.reply;
});

这就叫..

case "getBrowserForDocumentAttribute":
  alert("ZOMG HERE");
  sendResponse({
    reply: getBrowserForDocumentAttribute(request.docu,request.name)
  });
  break;

但是,我的代码从未达到"ZOMG here",而是在运行chrome.extension.sendRequest时抛出以下错误

 Uncaught TypeError: Converting circular structure to JSON
 chromeHidden.JSON.stringify
 chrome.Port.postMessage
 chrome.initExtension.chrome.extension.sendRequest
 suggestQuery

有人知道这是什么原因吗?

推荐答案

这意味着你在请求中传递的对象(我猜是pagedoc)有一个循环引用,比如:

var a = {};
a.b = a;

JSON.stringify不能转换这样的 struct .

N.B.:DOM node 就是这种情况,它有循环引用,即使它们没有连接到DOM树.每个 node 都有一个100,在大多数情况下表示document.document至少通过document.body引用DOM树,document.body.ownerDocument再次引用document,这只是DOM树中多个循环引用中的one个.

Javascript相关问答推荐

如何保持子画布元素的1:1宽高比?

仅在React和JS中生成深色

仅针对RTK查询中的未经授权的错误取消maxRetries

在网页上添加谷歌亵渎词

您能在卸载程序(QtInsteller框架)上添加WizardPage吗?

映射类型定义,其中值对应于键

使用VUE和SCSS的数字滚动动画(&;内容生成)

按下单键和多值

如何限制显示在分页中的可见页面的数量

AJAX POST在控制器中返回空(ASP.NET MVC)

与svg相反;S getPointAtLength(D)-我想要getLengthAtPoint(x,y)

如何使用Astro优化大图像?

如何组合Multer上传?

构建器模式与参数对象输入

用于测试其方法和构造函数的导出/导入类

Reaction useState和useLoaderData的组合使用引发无限循环错误

如何在下一个js中更改每个标记APEXCHARTS图表的 colored颜色

如何在TransformControls模式下只保留箭头进行翻译?

如何正确地在ComponentWillUnmount中卸载状态以避免内存泄漏?

为什么这个最小Angular 的Licial.dev设置不起作用?