我有以下…
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
chrome.extension.sendRequest
Uncaught TypeError: Converting circular structure to JSON chromeHidden.JSON.stringify chrome.Port.postMessage chrome.initExtension.chrome.extension.sendRequest suggestQuery
有谁知道是什么原因造成的?
这意味着您在请求中传递的对象(我猜它是pagedoc)具有循环引用,例如:
pagedoc
var a = {}; a.b = a;
JSON.stringify不能像这样转换结构。
JSON.stringify
注意 :DOM 节点就是这种情况,它们具有循环引用,即使它们没有附加到 DOM 树。在大多数情况下,每个节点都有一个 ownerDocument which 引用。至少通过并再次引用了对 DOM 树的引用,这只是DOM 树中的多个循环引用之一 。document``document``document.body``document.body.ownerDocument``document __
ownerDocument
document``document``document.body``document.body.ownerDocument``document