我有以下…
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 ,每个节点都有一个document。document具有通过至少一个参考DOM树document.body和document.body.ownerDocument指回document再次,这是唯一 一个 在DOM树中的多个循环引用。
ownerDocument
document
document.body
document.body.ownerDocument