【发布时间】:2018-08-12 01:02:45
【问题描述】:
我正在寻找一种方法来中断任何 localStorage 更改。我发现有一些我不知道从哪里来的神秘条目,我希望调试器中断任何更改,以便我可以检查代码。这包括:
localStorage.someKey = someValue;
localStorage["someKey"] = someValue;
localStorage.setItem("someKey", someValue);
由于在 localStorage 中有很多方法可以更改/创建条目,因此简单地覆盖 .setItem 并执行 debugger; 将不起作用。任何想法都值得赞赏。
【问题讨论】:
-
@PatrickEvans
StorageEvents 不会在同一页面上发出。它仅适用于同一域中的不同页面。 -
我会创建一个 iframe 或另一个具有相同 URL 的选项卡和一个
storage事件的侦听器。它不会停止调试器中的原始代码,但仍然会有所帮助。 -
一个疯狂的想法:由于 devtools 检测到这些更改(在 Chrome 中),您可以在其中设置断点:将 devtools 取消停靠到窗口中,按 CtrlShift-i 打开 devtools-for-devtools,找到代码检测 DOM 存储更改,设置断点。
-
@wOxxOm 那可能没有我想要的调用堆栈。
标签: javascript google-chrome debugging google-chrome-devtools