Cuando se llama a alguna API y quiero saber quién la llama.
Por ejemplo, una página web navega a otra URL de alguna manera, quiero saber por qué. Debe haber una función llamada API location.href=xxx , pero no sé cuál es la función. (Hay demasiadas funciones utilizadas location.href por lo que no puedo encontrarlas buscando el código).
Mi idea es usar proxy/interceptar la API location.href y agregarle un debugger . Así: Interrumpiendo la ejecución de JavaScript cuando se establece la cookie .
function debugAccess(obj, prop, debugGet){ var origValue = obj[prop]; Object.defineProperty(obj, prop, { get: function () { if ( debugGet ) debugger; return origValue; }, set: function(val) { debugger; return origValue = val; } }); }; debugAccess(document, 'cookie'); Pero el código no funciona para window.location . Esta API no es configurable , por lo que no podemos usar defineProperty para representarla.
> Object.getOwnPropertyDescriptor(window.location, "href") < {enumerable: true, configurable: false, get: ƒ, set: ƒ}¿Hay otra manera de hacer esto?