window.onbeforeunload = function (e) {
console.log(e);
}
在游戏机中,当事件发射时(在编写SO问题的过程中尝试“离开页面”)我看到的是:
Event {clipboardData: undefined, cancelBubble: false, returnValue: true, srcElement: document, defaultPrevented: false…}
在旁边有一点“ I”图形。当我单击其旁边的箭头以展开控制台中的对象时,什么也不会发生。箭头变为表明它已经扩展了,但没有扩展。
我在这里错过了什么?
发生这种情况,因为尽管您要让控制台持续在页面上更改,但视行为不再存在 - 当您离开页面时,它被破坏了。这意味着它根本无法进行检查,因此单击“向下三角形”无济于事。
尝试一下,以防止页面实际变化:window.onbeforeunload = function (e) {
console.log(e);
return true;
}
现在,该页面将提示您该怎么办。在出现的提示中单击“取消”以保留在页面上。现在,您可以根据需要检查控制台中的Event
区别在于
onbeforeunload
函数现在正在返回一个不是
null
/
undefined
的值。返回值可能是任何东西,甚至是''
或
false
等...除了null
和undefined
之外,它仍然会导致页面提示,然后再导航,从而使您有机会检查活动。请记住,如果没有return
语句,javaScript函数默认返回undefined
。
当您无法检查Chrome Dev工具中的某些内容时,有90%的时间是因为某些动作使该事物变得不可用...页面已经从该对象存在的时候开始了。未能扩展可能意味着该对象随后从内存中删除:可能已删除或收集垃圾,或者(尤其是如果您在Node.js脚本上使用Chrome Dev Tools.js脚本)可能是脚本完成的,所以
allrefs现在无处不在。 当检查物体以后更改为drop时,这是一个很好的做法,而不是:
:
这种方式,您可以访问更多上下文,而不必担心代码后期发生的事情引起的输出的更改。 请记住,在JavaScript中,每当您处理指向对象的变量时,您就会处理该对象的latest
状态。console.log
记录引用,而不是对象的内容,当您查看和展开已记录的参考时,您正在查看该引用指向的内容在您查看它的时间
而不是您记录它的时间。如果已将其从内存中删除或重新分配,则可能一无所有。 指向primitives的变量类似于字符串,数字指向值而不是引用,因此您也可以:
删除对象的弦乐版本,例如
window.onbeforeunload = function (e) {
debugger; // Now go find `e` in the local variables section
}
(尽管该输出可能很难读取)。 如果对象的属性都是原始的 方法是好好。
问题。但是这个简单的解决方案对我来说更好。使用
console.log
我刚刚遇到了一个问题,我遇到了一个问题,我的API提出请求在我的Chrome Dev Tools中的控制台选项卡中显示为console.log(JSON.stringify(someObject))
,我看到了相同的行为,我无法扩展对象和小
console.log({ ...someObject })
图标显示在控制台条目旁边。我决定以我的问题链接发布此答案,以防可能对其他人有所帮助。
apiput请求显示为“取消”,带有错误消息typeError:无法获取”