使用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