使用C# 的webBrowser写模拟器时的javascript脚本调用问题

作者:jackxinxu2100 时间:2022-03-14 23:56:31 

感觉很久不写模拟器代码了,昨天调试的时候碰了点壁,记录下来,避免大家再跟我犯同样的错误。

加入Javascript脚本的地方:


HtmlElement jsElement = webBrowser1.Document.CreateElement("script");
jsElement.SetAttribute("type", "text/javascript");
jsElement.SetAttribute("text", "showMeAction = function(e) { window.alert(e);}");
webBrowser1.Document.Body.AppendChild(jsElement);

调用的地方:


string[] args = new string[1];
args[0] = "Hello element!";
webBrowser1.Document.InvokeScript("showMeAction", args);

大家特别注意的是后面脚本调用的时候,只能出现函数名与参数值列表,不能增加其他内容,否则调用就不会成功。

使用的脚本代码:(这里的脚本代码模拟了鼠标移动的基础需求,通过Js直接发鼠标事件的方式来实现自动机器人)


function createEvent(eventName, ofsx, ofsy)
{
 var evt = document.createEvent('MouseEvents');
 evt.initMouseEvent(eventName, true, false, null, 0, 0, 0, ofsx, ofsy, false, false, false, false, 0, null);
 return evt;
}
function moveElement(pxToMove)
{
var sliderKnob = document.getElementsByClassName("gt_slider_knob")[0];
var boxRect = sliderKnob.getBoundingClientRect();
var move = createEvent('mousemove', boxRect.left + sliderKnob.offsetLeft + pxToMove, boxRect.top + sliderKnob.offsetTop);
var down = createEvent('mousedown', boxRect.left + sliderKnob.offsetLeft, boxRect.top + sliderKnob.offsetTop);
var up = createEvent('mouseup');
sliderKnob.dispatchEvent(down);
document.dispatchEvent(move);
sliderKnob.dispatchEvent(up);
}

以上所述是小编给大家介绍的使用C# 的webBrowser写模拟器时的javascript脚本调用问题网站的支持!

来源:http://blog.csdn.net/jackxinxu2100/article/details/74905348?utm_source=tuicool&utm_medium=referral

标签:c#,webbrowser,javascript,模拟器
0
投稿

猜你喜欢

  • springcloud-gateway整合jwt+jcasbin实现权限控制的详细过程

    2023-11-20 12:57:09
  • Spring如何利用@Value注解读取yml中的map配置

    2023-07-24 21:18:00
  • java实现订餐系统

    2023-08-12 04:39:06
  • SpringCloud Eureka应用全面介绍

    2022-08-23 17:43:26
  • 基于C语言实现井字棋游戏

    2023-06-28 21:23:18
  • Java 中ThreadLocal类详解

    2022-01-31 19:58:17
  • 一文带你掌握Spring Security框架的使用

    2021-12-02 09:41:00
  • 详解Flutter桌面应用如何进行多分辨率适配

    2023-06-17 07:14:59
  • Java反射获取实例的速度对比分析

    2021-06-14 09:22:29
  • Java中List.of()和Arrays.asList()的区别及原因分析

    2023-08-06 00:33:16
  • 浅谈SpringBoot在使用测试的时候是否需要@RunWith

    2022-12-19 04:14:14
  • 详解Java多态对象的类型转换与动态绑定

    2021-10-12 06:59:59
  • 三道java新手入门面试题,通往自由的道路--多线程

    2023-05-24 23:12:51
  • Java实现动态获取图片验证码的示例代码

    2023-07-24 22:32:05
  • 两种JAVA实现短网址服务算法

    2023-05-08 12:17:30
  • Maven实战之搭建Maven私服和镜像的方法(图文)

    2023-11-27 22:27:06
  • Nginx+SpringCloud Gateway搭建项目访问环境

    2023-07-16 01:13:27
  • Mybatis环境搭建及文件配置过程解析

    2021-07-04 22:37:03
  • 基于Java文件输入输出流实现文件上传下载功能

    2023-08-10 11:50:32
  • C# 使用Fluent API 创建自己的DSL(推荐)

    2022-03-30 23:36:48
  • asp之家 软件编程 m.aspxhome.com