我有以下…
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
有谁知道是什么原因造成的?
原文由 Skizit 发布,翻译遵循 CC BY-SA 3.0 许可协议
这意味着您在请求中传递的对象(我猜它是
pagedoc
)具有循环引用,例如:JSON.stringify
不能像这样转换结构。注意:DOM 节点就是这种情况,它们具有循环引用,即使它们没有附加到 DOM 树。每个节点都有一个
ownerDocument
,它在大多数情况下引用document
。document
至少通过document.body
引用了 DOM 树,而document.body.ownerDocument
又引用回了document
,这只是 DOM 树中的多个循环引用 _之一_。