当您将鼠标悬停在图像上时,会出现一个显示特定值的页面。我需要以编程方式从页面中获取该值。我可以访问页面中的JS控制台,但无法弄清楚它来自何处。
我尝试在DOM更改中添加断点,但仍不清楚数据的来源。
我也试过转储整个window
对象,但它似乎没有转储足够的数据或包含显示的数据(数字)(检查函数取自Chrome sendrequest error: TypeError: Converting circular structure to JSON)
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元素在图像悬停时添加,然后在移开鼠标时删除。
答案 0 :(得分:0)
使用Chrome开发工具Macbook:~ ben$ flutter --version
Flutter 0.3.3-pre.1 • channel master • https://github.com/flutter/flutter.git
Framework • revision 315993e (5 hours ago) • 2018-04-20 14:49:33 +0200
Engine • revision 09d05a3891
Tools • Dart 2.0.0-dev.48.0.flutter-fe606f890b
元素,然后选择检查。在右侧面板中,选择事件监听器选项卡。在列表中,展开 鼠标悬停 (或其他相应的事件)。
您将看到直接影响该元素的代码链接。
编辑#1
引用有关从其他(可能是非受控制的)代码中检索数据的注释:
如果在您的代码未创建的闭包内创建/派生/控制该数据,则您不太可能检索。这是JavaScript中闭包的本质。数据可能位于您无法进入的泡沫中。
编辑#2
您可以使用的hack:强制元素上的right-click
事件。这会将您追求的值放入DOM中。从DOM中提取值。然后关闭mouseover
事件。