cefSharp通过js操控页面,含跨域操控
基本操控
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操控页面,含跨域操控相关推荐
- JS不跨域操控网易云音乐外链播放器
JS不跨域操控网易云音乐外链播放器 今天写个人网站,用到了背景音乐. 一开始想使用H5的audio标签,蛮成功的,但是传到服务器上后加载缓慢(腾讯云服务器学生优惠版,最低的配置),体验很差. 使用外链 ...
- 「跨域」利用node.js实践前端各种跨域方式(上)
前言 常言道,"读万卷书,不如行万里路".技术的学习也是如此,唯有实践才能更清楚的明白原理和加深印象,因此本文会利用node.js对前端的各种跨域方式进行实践,强烈建议一步一步跟着 ...
- node.js搭建代理服务器实现跨域
node.js搭建代理服务器实现跨域 前后端分离,本地前端开发调用接口会有跨域问题,一般有以下3种解决方法: 后端接口打包到本地运行(缺点:每次后端更新都要去测试服下一个更新包,还要在本地搭建java ...
- 【JavaScript】父子页面之间跨域通信的方法
由于同源策略的限制,JavaScript跨域的问题,一直是一个比较棘手的问题,为了解决页面之间的跨域通信,大家煞费苦心,研究了各种跨域方案.之前也有小网同学分享过一篇"跨域,不再纠结&quo ...
- [Node.js] 模块化 -- 中间件和跨域
IP地址和域名 中间件 什么是中间件 是服务器开启之后和路由响应之前执行的一个函数 编写用于Express应用程序的中间件 中间件功能执行的任务 执行任何代码. 对请求和响应对象进行更改. 结束请求- ...
- js异步实例之跨域获取图片
文章目录 前言 问题描述 解决问题 获取图片 异步渲染 结语 前言 我们知道js中有关异步编程的知识有很多,比如以Promise,await/async等系列的异步语法,以及XMLHttpReques ...
- ArcGIS JS API 4.10跨域问题(本地切片无法加载)解决办法
场景: 使用ArcGIS API for JavaScript 4.10加载服务器发布的切片地图报错跨域,之前用3.x系列一切正常,换成4.10之后不出图,关键是加载官方在线切片服务一切正常.升到4. ...
- 获取含跨域网址的框架网页的源码
前面介绍过的获取框架网页的源码的方法在针对框架中每个文档的URL都是和主网页在同一个域名(同一个网站)的情况下是不会出什么问题的,但如果框架包含的网页是别的域的话,例如以下网页:该网页含左右两个框架, ...
- 动态加载js文件以支持跨域脚本
将以下脚本放在pageload时执行,var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async ...
最新文章
- 退信之550 5.7.1 Unable to relay for *@*.com
- 【机器学习】基于人工鱼群算法的非线性函数寻优
- 高端华为笔记本敲代码就是爽!!包邮送!
- word邮件合并一页8个_利用word邮件合并批量制作准考证
- 理解Linux系统负荷
- 文件包含漏洞检测工具fimap
- linux磁盘分配方案,安装Linux系统磁盘分配方案.doc
- PP模块常用事务代码清单
- orb-slam2 代码逻辑梳理
- MySQLSyntaxErrorException: Table 'taotao.tbuser' doesn't exist
- Javascript堆排序
- 二分查找的变体 —— Fibnaccian Search
- 第三方监测平台在道路安全管理中的应用
- 计算机应用基础 周凌,《新编计算机应用基础教程》-计算机基础知识.ppt
- USB充电限流芯片,5V输入,输出5V,6V触发关闭
- 矢量绘图界的性价比之王-Affinity Designer
- 史上最难php,世界上最难的简单几何体 - 我为数学狂 - 简单学习网论坛_中高考学习交流论坛_中学生学习论坛 - Powered by phpwind...
- 灰色预测的MATLAB代码
- java游戏仙剑外传李逍遥背_经典RPG游戏《仙剑奇侠传》李逍遥后期还在哪些版本中出现过?...
- 学生学籍管理系统~~登录界面(Java、SQL)
热门文章
- OpenCV实现幻灯片模糊slides blur的实例(附完整代码)
- QT的QQmlScriptString类的使用
- C语言数组类型、数组指针类型、数组指针类型变量
- oracle 树状结构一直出现不了_深入解析Oracle ASSM 段头块(PAGETABLE SEGMENT HEADER)结构...
- 先天性脑部发育异常_宝宝出现发育迟缓,会有哪些症状?修正育儿知识分享!...
- 5.创建表,使用alter进行表信息的增删改,Oracle回收站,集合运算
- 处理数字_6_NULL值的列的个数
- 剪切粘贴时总是上次的内容_Quicker 1.4版本更新内容
- 安卓键盘加上数字_HHKB Professional HYBRID静电容键盘图赏
- OpenCV文字绘制函数putText()的使用