javascript - 有兴趣跟踪用户浏览网站时触发的事件

标签 javascript events browser jquery

我想知道是否可以这样做:

在我的站点中,我使用了很多 jQuery 插件,这些插件会触发我不知道的不同事件。

有没有一种方法 - 程序、浏览器插件或其他方式 - 我可以浏览网站并获取每次点击时触发的确切 javascript 事件的列表?

例如,我有一个 jQuery 插件,当我右键单击任何元素时,会显示自定义上下文菜单,然后当我单击其中一个选项时,会出现其他内容。我需要确切地知道触发了哪些 Javascript 基本事件:

 $('input:submit, button:submit').rightClick(function (e) {
    $(this).contextMenu('contextMenuInput', {
        'Capture This': {
            click: function (element) {   // element is the jquery obj clicked on when context menu launched
                doSomething();
            },
            klass: "kgo" // a custom css class for this menu item (usable for styling)
        },
        'Create List': {
            click: function (element) {
            },
            klass: "kfilter kdisabled"
        },
        'Collect Data': {
            click: function (element) {
            },
            klass: "kcapture kdisabled"
        }
    },
    { disable_native_context_menu: true }
);
});

有人知道吗?

最佳答案

您可以使用以下代码显示当前绑定(bind)的事件....

这是使用此代码的示例:http://jsfiddle.net/manseuk/CNjs3/

(function($) {
    $.eventReport = function(selector, root) {
        var s = [];
        $(selector || '*', root).andSelf().each(function() {
            var e = $.data(this, 'events');
            if(!e) return;
            s.push(this.tagName);
            if(this.id) s.push('#', this.id);
            if(this.className) s.push('.', this.className);
            for(var p in e) s.push('\n', p);
            s.push('\n\n');
        });
        return s.join('');
    }
    $.fn.eventReport = function(selector) {
        return $.eventReport(selector, this);
    }
})(jQuery);

像这样使用它->

// all events
alert($.eventReport());

// just events on inputs
alert($.eventReport('input')); 

// just events assigned to this element
alert($.eventReport('#myelement')); 

// events assigned to inputs in this element
alert($.eventReport('input', '#myelement')); 
alert($('#myelement').eventReport('input')); // same result

// just events assigned to this element's children
alert($('#myelement').eventReport()); 
alert($.eventReport('*', '#myelement'); // same result

根据评论更新

如果您想查看与这些事件绑定(bind)的是什么,这是一个很好的工具 -> http://www.sprymedia.co.uk/article/Visual+Event

关于javascript - 有兴趣跟踪用户浏览网站时触发的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8323682/

相关文章:

android - MotionEvent 多个触摸事件混淆并相互影响(参见演示视频)

html - Ctrl + PLUS/MINUS 在现代浏览器中有什么作用?

java - Midlet 与 Phone Browser 应用程序的优缺点?

javascript - 如何在奇特的AJAX中显示自刷新的 "popout"html GET页面

javascript - 多个ajax请求

javascript - React-native 组件不工作,它会循环并在 UI 上显示不断增加的值(value)

javascript - 在nodejs中,生成直接stdout和stderr到日志文件不起作用

events - 如何在 Haskell 中模拟/欺骗按键事件?

html - 如何在 Angular Material 中将 Tab 键设为回车键?

internet-explorer - 如何在没有 IE 的情况下以 IE 的方式查看站点?