需求:
目标js中,有一个方法,要在这个方法中,插入自己的js代码,更改它的执行逻辑。
代码实现:
var InjectionJsSetting02 = new InjectionSetClass();
//注入的js文件请求url
InjectionJsSetting02.InjectionToUrl.Add("https://xxxx/js/bussiness/index.js".RegexEscape());
//插入的自定义代码
InjectionJsSetting02.InjectionData = "if(anrpttype=='' || anrpttype==undefined){anrpttype='" + anrpttype + "';}";
InjectionJsSetting02.LocationStrType = InjectionSetClass.LocationStrTypeEnum.Normal;
//注入的位置
InjectionJsSetting02.InjectionLocation = "function locat(anrpttype,ancheid,year,publicstate,antype,sqxgbz){";
InjectionJsSetting02.AllowInjectionMaxTimes = int.MaxValue;
//在匹配注入位置之后插入注入的代码
InjectionJsSetting02.InjectionLocationMode = InjectionSetClass.InjectionLocationModeEnum.AfterTheLocationInsert;
br.InjectionSettings.Add(InjectionJsSetting02);
说明:
原有代码:
function locat(anrpttype,ancheid,year,publicstate,antype,sqxgbz){
//.....
}
注入执行后,假定anrpttype=1
function locat(anrpttype,ancheid,year,publicstate,antype,sqxgbz){
if(anrpttype=='' || anrpttype==undefined){anrpttype='1';}
//.....
}