js拦截器
近期公司有个需求是统一修改弹窗的样式,因为分为很多模块,而且使用的地方很多,想到的办法就是通过拦截器实现,或者说代理。
因为公司使用的是jsp项目,很多都是原生的技术,对这块儿不是很了解,希望懂得伙伴指点迷津,研究了好长时间了
需求:监听一个自定义函数,例如函数名为“ Test”的函数,阻止原有的函数并执行新的逻辑,不支持ES6写法(要兼容旧的浏览器太痛苦了)
近期公司有个需求是统一修改弹窗的样式,因为分为很多模块,而且使用的地方很多,想到的办法就是通过拦截器实现,或者说代理。
因为公司使用的是jsp项目,很多都是原生的技术,对这块儿不是很了解,希望懂得伙伴指点迷津,研究了好长时间了
需求:监听一个自定义函数,例如函数名为“ Test”的函数,阻止原有的函数并执行新的逻辑,不支持ES6写法(要兼容旧的浏览器太痛苦了)
该回答引用自GPT-3.5,由博主GIS_Liu编写:
你可以通过修改原型链来实现函数拦截。下面是一个简单的示例,演示如何拦截名为"Test"的函数,并执行新的逻辑:
// 定义拦截器函数
function interceptor() {
// 在这里执行你想要的新逻辑
console.log("拦截器拦截到了Test函数");
}
// 保存原始的Test函数
var originalTest = window.Test;
// 修改Test函数的实现
window.Test = function() {
// 执行拦截器逻辑
interceptor();
// 如果需要,你也可以保留原始函数的调用
// 例如:originalTest.apply(this, arguments);
};
// 示例:调用拦截后的Test函数
window.Test();
这段代码将全局的"Test"函数替换为一个新的函数,新函数首先执行拦截器逻辑,然后再执行原始的"Test"函数。这样就实现了拦截并执行新逻辑的需求。
如果该回答解决了您的问题,请采纳!如果没有,请详述问题所在!