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

发布时间 - 2026-01-11 02:15:29    点击率:

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

加入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脚本调用问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# c#  # webbrowser  # javascript模拟器脚本  # 利用FlubuCore用C#来写DevOps脚本的方法详解  # C#调用python脚本的方法步骤(2种)  # 在VS2017中用C#调用python脚本的实现  # 微信跳一跳自动脚本C#代码实现  # C#调用Python脚本的简单示例  # 总结ASP.NET C#中经常用到的13个JS脚本代码  # C#创建数据库及导入sql脚本的方法  # C#利用ScriptControl动态执行JS和VBS脚本  # 在C#中调用VBScript、javascript等脚本的实现代码  # 常用工具之 vb转化C# 数据连接串 正则表达式查询 源码世界 脚本字典  # C# 脚本引擎CS-Script的使用  # 鼠标  # 小编  # 的是  # 在此  # 很久  # 给大家  # 来实现  # 所述  # 给我留言  # 感谢大家  # 碰了  # 不写  # 再跟  # 疑问请  # 有任何  # 直接发  # 昨天  # window  # alert  # Body 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何有效防御Web建站篡改攻击?  Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  Android滚轮选择时间控件使用详解  标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  如何快速生成ASP一键建站模板并优化安全性?  Linux网络带宽限制_tc配置实践解析【教程】  瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口  高端智能建站公司优选:品牌定制与SEO优化一站式服务  使用豆包 AI 辅助进行简单网页 HTML 结构设计  Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决  怎样使用JSON进行数据交换_它有什么限制  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】  Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率  高端企业智能建站程序:SEO优化与响应式模板定制开发  如何在Windows服务器上快速搭建网站?  个人摄影网站制作流程,摄影爱好者都去什么网站?  高防服务器租用首荐平台,企业级优惠套餐快速部署  Laravel Fortify是什么,和Jetstream有什么关系  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  中国移动官方网站首页入口 中国移动官网网页登录  油猴 教程,油猴搜脚本为什么会网页无法显示?  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  iOS验证手机号的正则表达式  Python正则表达式进阶教程_复杂匹配与分组替换解析  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  昵图网官网入口 昵图网素材平台官方入口  javascript基本数据类型及类型检测常用方法小结  Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)  Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】  Python文件异常处理策略_健壮性说明【指导】  Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】  如何在新浪SAE免费搭建个人博客?  轻松掌握MySQL函数中的last_insert_id()  html5的keygen标签为什么废弃_替代方案说明【解答】  如何快速查询网站的真实建站时间?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  如何在宝塔面板中修改默认建站目录?  打开php文件提示内存不足_怎么调整php内存限制【解决方案】  如何在香港免费服务器上快速搭建网站?  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】  活动邀请函制作网站有哪些,活动邀请函文案?  如何快速上传建站程序避免常见错误?  教你用AI润色文章,让你的文字表达更专业  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  如何在建站之星网店版论坛获取技术支持?  如何快速查询网址的建站时间与历史轨迹?  如何为不同团队 ID 动态生成多个独立按钮