gpt4 book ai didi

javascript - 让我的浏览器调试器在地理定位时中断

转载 作者:行者123 更新时间:2023-11-30 17:12:19 24 4
gpt4 key购买 nike

我正在访问一个要求我分享我的位置的网站。我想知道他们用这些信息做了什么以及这些信息被发送到哪里。我试着查看该页面的 JavaScript 代码,希望找到涉及地理定位的内容,但代码很多,而且被混淆了。

是否可以在浏览器的内置 navigator.geolocation.getCurrentPositionnavigator.geolocation.watchPosition 函数中放置一个断点,以便当这些函数中的任何一个被调用时调用,我可以查看调用堆栈,看看是什么调用了这些函数,也许找到回调函数以便我可以检查它们?

我更喜欢能在 Firebug 中运行的东西,但我更喜欢能与 Firefox、Chrome 或 Safari 中内置的开发者工具一起工作的东西。

最佳答案

我找不到任何方法来中断 Chrome 中的 geolocation API,但您可以使用一种技术,在继续之前用另一个执行一些自定义代码的函数来填充要调试的函数调用预期的功能。

这里是一个填充 getCurrentPosition 函数的例子。

var getCurrentPosition = navigator.geolocation.getCurrentPosition;
navigator.geolocation.getCurrentPosition = function(){
debugger;
getCurrentPosition.apply(navigator.geolocation, arguments);
}

在这个例子中,我将真实的API复制到一个局部变量中,调用debugger语句(有效地设置断点),然后按预期调用真正的函数。现在,当混淆代码调用 navigator.geolocation.getCurrentPosition(...) 时,Chrome 调试器将在 debugger 行打开,您可以查看调用堆栈。

或者,您可以执行 console.trace 或任意数量的其他操作。

var getCurrentPosition = navigator.geolocation.getCurrentPosition;
navigator.geolocation.getCurrentPosition = function(){
console.trace();
getCurrentPosition.apply(navigator.geolocation, arguments);
}

请注意,在调用 navigator.geolocation.getCurrentPosition 或将其分配给变量之前,您需要在某处设置断点。第一行代码应该没问题。

关于javascript - 让我的浏览器调试器在地理定位时中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26746270/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com