首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何找出DOM中的数据来自哪里/将所有数据转储到内存中?

如何找出DOM中的数据来自哪里/将所有数据转储到内存中?
EN

Stack Overflow用户
提问于 2018-04-23 02:11:46
回答 1查看 35关注 0票数 1

有一个页面,当你将鼠标悬停在图像上时,它会显示某个值。我需要以编程方式从页面获取该值。我可以在页面中访问JS控制台,但不知道它来自哪里。

我尝试在DOM更改上添加断点,但仍然不清楚数据来自何处。

我也尝试过转储整个window对象,但它似乎没有转储足够的数据或包含显示的数据(数字)(从Chrome sendrequest error: TypeError: Converting circular structure to JSON中提取的审查函数)

代码语言:javascript
复制
function censor(censor) {
  var i = 0;

  return function(key, value) {
    if(i !== 0 && typeof(censor) === 'object' && typeof(value) == 'object' && censor == value) 
      return '[Circular]'; 

    if(i >= 1129)
      return '[Unknown]';

    ++i; // so we know we aren't using the original object anymore

    return value;  
  }
}

for(var key in window){
  console.log(key);
  if(key === 'frames' || key === 'self' || key === 'window' || key === 'parent' || key === 'top' || key === 'document') continue;
  console.log(JSON.stringify(window[key], censor(window[key])))
}

有没有什么想法可以让我完全转储页面中的数据(这样我就可以搜索它的确切来源),或者清楚地跟踪DOM中的数据来自哪里?DOM元素在图像悬停时添加,然后在鼠标移开时删除。

EN

回答 1

Stack Overflow用户

发布于 2018-04-23 02:18:14

使用Chrome开发工具,选择right-click元素并选择inspect。在右侧面板中,选择Event Listeners选项卡。在列表中,展开上的鼠标(或其他适当的事件)。

您将看到直接影响该元素的代码的链接。

编辑#1

参考有关从其他(可能是非受控的)代码检索数据的注释:

如果该数据是在不是由您的代码创建的闭包中创建/派生/控制的,则您不太可能能够检索到。这就是JavaScript中闭包的本质。数据可能在您无法触及的气泡中。

编辑#2

可以使用的一个技巧是:在元素上强制使用mouseover事件。这会将您想要的值放入DOM中。从DOM中提取值。然后关闭mouseover事件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49969171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档