Skip to content

钩子

用于用户在插件处理周期中扩展自己的行为。

配置方式

示例配置:

javascript

    window.cnblogsConfig = {
        // ...  主配置
    };

    // 钩子配置
    window.cnblogsConfig.hooks = {

          beforeCode: (_) => {
            // console.log('code 渲染开始前');
          },
          afterCode: (_) => {
            // console.log('code 渲染结束后');
          },
          beforeLoading: (_) => {
            // console.log('loading 开始前');
          },
          afterLoading: (_) => {
            // console.log('loading 结束后');
          },
          dayNightControl: (_, type) => {
            // console.log(type);
            // console.log('日/夜间模式');
          },
    };

钩子方法

方法参数描述
beforeCode_code 渲染开始前调用此方法
afterCode_code 渲染结束后调用此方法
beforeLoading_loading 开始前调用此方法
afterLoading_loading 结束后调用此方法
dayNightControl_, type日/夜间模式切换调用此方法

关于参数 "_"

里面包含了插件渲染使用的配置、工具方法、页面状态、事件监听等。

查看/修改配置

当前插件渲染使用的配置都在 _.__config 中,可以查看当前配置,也可以直接修改使用的配置。

调用插件公共方法

当前插件公共方法都在 _.__tools 中,关于所有的公共方法可查看此文件

查看页面状态信息

当前插件渲染使用的配置都在 _.__status 中。

查看/触发事件

当前插件公共事件处理都在 _.__event 中,目前只有滚动事件和窗口大小事件的监听处理,源码可参考此文件

  • 触发事件

只能触发已经注册的事件,根据插件加载,会陆续注册进来新的事件处理 handle。

示例:

javascript
_.__event.handle.scroll(); // 触发滚动处理
_.__event.handle.resize(); // 触发窗口大小变化处理
  • 添加新的事件处理

示例:

javascript
_.__event.scroll.handle.push(() => {
    console.log('当页面滚动时,我被执行!');
});