admin 发表于 2024-12-19 14:51:48

【FBroSharp】C#版本VIP高级执行JS代码演示



C#执行VIP高级JS功能调用代码示例,功能参数说明可通过右键预览定义参看
```csharp
private void vIP执行JSToolStripMenuItem_Click(object sender, EventArgs e)
{
    string contextId = Interaction.InputBox("请输入环境ID,可以通过PageGetContextID获取", "对话框", "", -1, -1);
    if (contextId == "")
      return;

    using (var vip_control = BrowserList.data.GetVIPControl())
    {
      var advanced = vip_control.GetAdvancedControl();
      var callback = new VIPJSCallback();
      //执行之前需要先RuntimeEnable
      advanced.RuntimeEvaluate("alert('Hello VIP');function text(a){return a;};text('21313你好')", true, int.Parse(contextId), false, true, 999999, false, false, callback);

    }

}
```
如上代码所示,通过浏览器`BrowserList`清单获取到保存的浏览器,通过`GetVIPControl`获取到对应的高级功能执行类,通过`RuntimeEvaluate`执行js代码,这里的`callback`变量类型`VIPJSCallback`是通过自定义继承`FBroSharpGeneralResultCallback`而来,获取数据也是在该类`CallbackData`中异步获取,示例代码如下:
```csharp
public class VIPJSCallback : FBroSharpGeneralResultCallback
{
    public override void CallbackData(IFBroSharpBrowser browser, int message_id, bool success,Stream data)
    {
      StreamReader reader = new StreamReader(data, Encoding.UTF8);

      Console.WriteLine(MethodBase.GetCurrentMethod().Name+":" + reader.ReadToEnd());
    }
}
```
这里还要注意的是,执行高级JS功能之前需要启用环境才会生效,否则回调会报错找不到环境,如下:
```csharp
using (var vip_control = BrowserList.data.GetVIPControl())
{
    var advanced = vip_control.GetAdvancedControl();
    advanced.RuntimeEnable(true);//不需要的时候执行完了后可以关闭
}

```
该代码示例已经上传到最新的gitee开源库中,包括高级截图、鼠标、键盘、触摸事件等功能;
下载地址:https://gitee.com/FloatToPoint/fbro-sharp-test.git
页: [1]
查看完整版本: 【FBroSharp】C#版本VIP高级执行JS代码演示