基本操控
cefSharp可以让页面运行指定的js代码,所以这就为操控页面提供了方法,js能做的所有操控DOM元素的方法,cefSharp都可以做了
在67版本中对页面使用js的方法很简单,一句话:

browser.ExecuteJavaScriptAsync(script);//script是String格式的js代码
1
##获取Js返回的结果

如果要获取到js返回的结果,则需要麻烦一点

String script =
@"(function() {
var tags = document.getElementsByTagName('span');
var result=false;
for(var i in tags){
if (tags[i].nodeType == 1){
if (tags[i].getAttribute('class') == 'example'){
result=true;
}
}
}
return result;
})()";

browser.EvaluateScriptAsync(script).ContinueWith(x =>
{
var response = x.Result;

if (response.Success && response.Result != null)
{
bool result = (bool)response.Result;
if (result)
{
//TODO
}
else
{
//TODO
}
}
});
注意:花括号中间的代码是异步执行的
上面的例子的作用是在在页面中寻找一个class为example的span元素,找到返回true,找不到返回false;

跨域操控
跨域操控的方式很简单,读取browser里面有几个框架,在框架下面执行指定JS代码就好了

List<long> idList = browser.GetBrowser().GetFrameIdentifiers();//idList里面装了页面所有iframe的数据
//取出第2个iframe
IFrame frame = browser.GetBrowser().GetFrame(idList[2]);
//执行js代码
frame.ExecuteJavaScriptAsync(script);
————————————————

cefSharp通过js操控页面,含跨域操控相关推荐

  1. JS不跨域操控网易云音乐外链播放器

    JS不跨域操控网易云音乐外链播放器 今天写个人网站,用到了背景音乐. 一开始想使用H5的audio标签,蛮成功的,但是传到服务器上后加载缓慢(腾讯云服务器学生优惠版,最低的配置),体验很差. 使用外链 ...

  2. 「跨域」利用node.js实践前端各种跨域方式(上)

    前言 常言道,"读万卷书,不如行万里路".技术的学习也是如此,唯有实践才能更清楚的明白原理和加深印象,因此本文会利用node.js对前端的各种跨域方式进行实践,强烈建议一步一步跟着 ...

  3. node.js搭建代理服务器实现跨域

    node.js搭建代理服务器实现跨域 前后端分离,本地前端开发调用接口会有跨域问题,一般有以下3种解决方法: 后端接口打包到本地运行(缺点:每次后端更新都要去测试服下一个更新包,还要在本地搭建java ...

  4. 【JavaScript】父子页面之间跨域通信的方法

    由于同源策略的限制,JavaScript跨域的问题,一直是一个比较棘手的问题,为了解决页面之间的跨域通信,大家煞费苦心,研究了各种跨域方案.之前也有小网同学分享过一篇"跨域,不再纠结&quo ...

  5. [Node.js] 模块化 -- 中间件和跨域

    IP地址和域名 中间件 什么是中间件 是服务器开启之后和路由响应之前执行的一个函数 编写用于Express应用程序的中间件 中间件功能执行的任务 执行任何代码. 对请求和响应对象进行更改. 结束请求- ...

  6. js异步实例之跨域获取图片

    文章目录 前言 问题描述 解决问题 获取图片 异步渲染 结语 前言 我们知道js中有关异步编程的知识有很多,比如以Promise,await/async等系列的异步语法,以及XMLHttpReques ...

  7. ArcGIS JS API 4.10跨域问题(本地切片无法加载)解决办法

    场景: 使用ArcGIS API for JavaScript 4.10加载服务器发布的切片地图报错跨域,之前用3.x系列一切正常,换成4.10之后不出图,关键是加载官方在线切片服务一切正常.升到4. ...

  8. 获取含跨域网址的框架网页的源码

    前面介绍过的获取框架网页的源码的方法在针对框架中每个文档的URL都是和主网页在同一个域名(同一个网站)的情况下是不会出什么问题的,但如果框架包含的网页是别的域的话,例如以下网页:该网页含左右两个框架, ...

  9. 动态加载js文件以支持跨域脚本

    将以下脚本放在pageload时执行,var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async ...

最新文章

  1. 退信之550 5.7.1 Unable to relay for *@*.com
  2. 【机器学习】基于人工鱼群算法的非线性函数寻优
  3. 高端华为笔记本敲代码就是爽!!包邮送!
  4. word邮件合并一页8个_利用word邮件合并批量制作准考证
  5. 理解Linux系统负荷
  6. 文件包含漏洞检测工具fimap
  7. linux磁盘分配方案,安装Linux系统磁盘分配方案.doc
  8. PP模块常用事务代码清单
  9. orb-slam2 代码逻辑梳理
  10. MySQLSyntaxErrorException: Table 'taotao.tbuser' doesn't exist
  11. Javascript堆排序
  12. 二分查找的变体 —— Fibnaccian Search
  13. 第三方监测平台在道路安全管理中的应用
  14. 计算机应用基础 周凌,《新编计算机应用基础教程》-计算机基础知识.ppt
  15. USB充电限流芯片,5V输入,输出5V,6V触发关闭
  16. 矢量绘图界的性价比之王-Affinity Designer
  17. 史上最难php,世界上最难的简单几何体 - 我为数学狂 - 简单学习网论坛_中高考学习交流论坛_中学生学习论坛 - Powered by phpwind...
  18. 灰色预测的MATLAB代码
  19. java游戏仙剑外传李逍遥背_经典RPG游戏《仙剑奇侠传》李逍遥后期还在哪些版本中出现过?...
  20. 学生学籍管理系统~~登录界面(Java、SQL)

热门文章

  1. OpenCV实现幻灯片模糊slides blur的实例(附完整代码)
  2. QT的QQmlScriptString类的使用
  3. C语言数组类型、数组指针类型、数组指针类型变量
  4. oracle 树状结构一直出现不了_深入解析Oracle ASSM 段头块(PAGETABLE SEGMENT HEADER)结构...
  5. 先天性脑部发育异常_宝宝出现发育迟缓,会有哪些症状?修正育儿知识分享!...
  6. 5.创建表,使用alter进行表信息的增删改,Oracle回收站,集合运算
  7. 处理数字_6_NULL值的列的个数
  8. 剪切粘贴时总是上次的内容_Quicker 1.4版本更新内容
  9. 安卓键盘加上数字_HHKB Professional HYBRID静电容键盘图赏
  10. OpenCV文字绘制函数putText()的使用