美文网首页
javascript Hook

javascript Hook

作者: CoderGLM | 来源:发表于2016-05-13 14:42 被阅读1327次

我的新博客:http://gengliming.com

什么是钩子?

引用2:当定义好的事件(比如用户登录)触发时,钩子可以使自定义代码得以执行。

引用4:钩子可以监视系统或进程中的各种事件消息,截获发往目标窗口的消息并进行处理。这样,我们就可以在系统中安装自定义的钩子,监视系统中特定事件的发生,完成特定的功能,比如截获键盘、鼠标的输入,屏幕取词,日志监视等等。

引用4的解释很符合我的理解,因为最初接触钩子概念还是在大学中玩MFC时了解的。

实例

$('.btn_view').click(...)

在这种情况下,btn_view是js用来监听或者操作DOM的钩子。

  • 2 引用5:比如当页面加载完成后有很多回调函数需要执行,可以使用钩子在需要添加回调函数的时候就添加回调,然后在页面加载完成后直接run钩子;
  • 3 引用6:函数劫持

钩子的实现

这是一个被简化的钩子工具。所有代码被绝对信任,不存在参数说明,没有优先级(除了插入顺序),并且钩子不保证能够运行。

// 参考了引用3,有部分修改
    <script>
     var Hook = {
         hooks: {},

         register: function( name, callback ) {
           if( 'undefined' == typeof( Hook.hooks[name] )) {
             Hook.hooks[name] = [];
           }
           Hook.hooks[name].push( callback );
         },

         run: function( name, arguments ) {
           var i = 0;
           if( 'undefined' != typeof( Hook.hooks[name] )) {
             for( ; typeof(Hook.hooks[name][i]) != 'undefined'; i++ ) {
               if( Hook.hooks[name][i]( arguments ) != true ) { break;}
             }
           }
         }
     };

     Hook.register('quit', function( args ) {
       console.log( 'Bye!-1' );
       return true;
     });
     Hook.register('quit', function( args ) {
       console.log( 'Bye!-2' );
       return true;
     });
     Hook.register('quit', function( args ) {
       console.log( 'Bye!-3' );
       return true;
     });
     Hook.run('quit', ['All Done'] );
     </script>

参考

1.Best practice on naming JavaScript hooks in your views:如何命名钩子(),主要参考价值是事件绑定
2.Manual:Hooks:php钩子系统
3.A Simple JavaScript Hooks System:钩子的简单实现
4.系统钩子:什么是系统钩子
5.javascript 钩子机制——开会得出的结论:是从实践中得出的经验
6.浅谈 javascript 函数劫持

相关文章

  • Hook

    hook 介绍 Hook 是 React16.8 的新特性。Hook 就是 JavaScript 函数, 它可以让...

  • react hooks学习

    Hook就是JavaScript函数,这个函数可以帮你钩入(hook into) React State以及生命周...

  • javascript Hook

    我的新博客:http://gengliming.com 什么是钩子? 引用2:当定义好的事件(比如用户登录)触发时...

  • JavaScript 原型hook实现

    基于原型的hook实现: 从中理解是JavaScript 基于原型

  • Android Hook工具之Frida 安装配置教程

    Frida是一款基于Python + JavaScript的Hook调试框架,可以将自己编写的JavaScript...

  • Hook

    Hook是一种JavaScript函数。使用Hook有几点限制:1、只能在函数组件中使用2、在能在函数的最顶层使用...

  • Android逆向之hook框架frida篇

    前言 Frida是一款基于python + javascript 的hook框架,通杀android\ios\li...

  • Frida初识

    Frida简介 Frida 是一款基于 Python + JavaScript 的 Hook 与调试框架。是一款易...

  • 安装vue-tools遇到JavaScript“build/ho

    安装vue-tools遇到JavaScript“build/hook.js的错误解决办法manifest.js文件...

  • Frida详细安装教程

    1. 概述 Frida是个轻量级别的hook框架 是Python API,但JavaScript调试逻辑 Frid...

网友评论

      本文标题:javascript Hook

      本文链接:https://www.haomeiwen.com/subject/oxxmrttx.html