有什么方法可以追溯javascript函数调用吗

Is there any way to trace back a javascript function call?

本文关键字:javascript 函数调用 什么 方法      更新时间:2023-09-26

我需要一个明确的方法来弄清楚什么是Javascript在修改表单值?我能做的最好的事情是:

$(function(){
    console.log($("input[name=Email]").val());
});

但是,到执行该操作时,该值尚未更改。

在Chrome和Firefox中有一种新的方法:console.trace

请参阅此处:

https://developer.mozilla.org/en-US/docs/Web/API/console.trace

web检查器:

> console.trace()
console.trace() VM251:2
(anonymous function) VM251:2
InjectedScript._evaluateOn VM223:581
InjectedScript._evaluateAndWrap VM223:540
InjectedScript.evaluate VM223:459
undefined

因此,要修改已接受的答案:

$('input#myInputAbove').change(function(){
    console.trace(); // No breakpoint needed anymore.
});

将其直接插入到要跟踪的表单元素的HTML下方:

$('input#myInputAbove').change(function(){
    console.log('change detected'); // Breakpoint on this line
});

使用FireBug在上面的JS方法中插入一个断点。点击它,看看堆叠比赛。

下面将显示哪些事件处理程序已绑定到元素:

$.each($("input[name='Email']").data('events'), function(i, event){
  $.each(event, function(i, handler){
      console.log( handler.handler );
  });
});
prev_value = document.getElementByName('Email').value;
$("input[name=Email]").change(function(){
    var cur_value = document.getElementById('Email').value;
    if(cur_value != prev_value){
       alert("Value changed");
     //or console.log("Value changed"); 
    }
 }