ccefhtml,CefSharp获取页⾯Html代码的两种⽅式CefSharp在NuGet的简介是“The CefSharp Chromium-based browser component”,机翻的意思就是“基于Cefsharp Chromium的浏览器组件”
第⼀种⽅法 就是执⾏JavaScript代码获取当前html代码
StringBuilder sb = new StringBuilder();
sb.AppendLine("function tempFunction() {");
//sb.AppendLine(" return document.body.innerHTML; ");
sb.AppendLine(" ElementsByTagName('html')[0].innerHTML; ");
sb.AppendLine("}");
sb.AppendLine("tempFunction();");
var task01 = browser.GetBrowser().GetFrame(browser.GetBrowser().GetFrameNames()
[]).EvaluateScriptAsync(sb.ToString());
task01.ContinueWith(t =>
{
if (!t.IsFaulted)
{
var response = t.Result;
if (response.Success == true)
{
if (response.Result != null)
{
string resultStr = response.Result.ToString();
}
}
}
});
第⼆种⽅法 是利⽤CefSharp.IFrame.GetSourceAsync()⽅法
///
/// 页⾯加载结束
///
///
///
private void Browser_FrameLoadEnd(object sender, FrameLoadEndEventArgs e)
{
var task02 = e.Frame.GetSourceAsync();
task02.ContinueWith(t =>
{
if (!t.IsFaulted)
{
string resultStr = t.Result;
}
});
}
我这⾥是在Browser_FrameLoadEnd事件中直接获取的IFrame,
GetSourceAsync()⽅法我简单翻译了⼀下
//
/
/ 摘要:
// Retrieve this frame's HTML source as a string sent to the specified visitor.
// 检索此框架的HTML源代码以字符串形式发送给指定访问者。
//
// 返回结果:
// a System.Threading.Tasks.Task`1 that when executed returns this frame's HTML
// source as a string.
// ⼀个线程任务,执⾏时将此框架的HTML源⽂件作为字符串返回。
Task GetSourceAsync();
springboot项⽬启动成功后执⾏⼀段代码的两种⽅式
springboot项⽬启动成功后执⾏⼀段代码的两种⽅式 实现ApplicationRunner接⼝ package com.lnjecit.lifecycle; import org.springf ...
js实现页⾯跳转的两种⽅式
CreateTime--2017年8⽉24⽇08:13:52Author:Marydon js实现页⾯跳转的两种⽅式 ⽅式⼀: window.location.href = url 说明:我们常⽤ ...
js中获取页⾯元素节点的⼏种⽅式
android启动第⼀个界⾯时即闪屏的核⼼代码(两种⽅式)
闪屏,就是SplashScreen,也能够说是启动画⾯,就是启动的时候,闪(展⽰)⼀下,持续数秒后.⾃⼰主动关闭.  第⼀种⽅式: android的实现很easy,使⽤Handler对象的postDe ...
html页⾯保存数的两种⽅式
js控制css3动画触发C++调⽤C代码的两种⽅式
由于C++⽀持函数重载,在编译函数代码的时候会加上参数类型的信息,⽽C编译只有函数名信息,导致C++直接调⽤C代码在链接的时候会出现函数未定义的问题.解决这种问题有两种⽅法.⽅法⼀:在写C代码的时候考 ...
web项⽬中实现页⾯跳转的两种⽅式
跳转在⽹页本⾝,URL不改变
python编写的banner获取代码的两种⽅式
1.⽆选项和帮助信息 #!/usr/bin/env python #coding:utf-8 import socket import sys import os from threading imp ...
Struts2获取Servlet的api的两种⽅式,解决ParameterAware过时的问题
servlet API通过ActionContext进⾏获取 Struts2对HttpServletRequest,HttpSession和ServletContext进⾏了封装,构造了3个Map对象 ...
随机推荐
《PDF.NE数据框架常见问题及解决⽅案-初》
1.新增数据库后,获取标识列的值: 解决⽅案:    PDF.NET数据框架,已经为我们考略了很多,因为⽤PDF.NET进⾏数据的添加操作时 ...
Css 相关资源(本篇不定期更新)
Hadoop总结篇之三---⼀个Job到底被提交到哪去了
我们会定义Job,我们会定义map和reduce程序.那么,这个Job到底是怎么提交的?提交到哪去了?它到底和集怎么进⾏交互的呢? 这篇⽂章将从头讲起. 开发hadoop的程序时,⼀共有三⼤块,也就 ...
Linux查看操作系统时间
date命令的功能是显⽰和设置系统⽇期和时间. 该命令的⼀般格式为: date [选项] 显⽰时间格式(以+开头,后⾯接格式) date 设置时间格式命令中各选项的含义分别为: -d datestr ...
SQL模式匹配
标准的SQL的模式匹配允许你使⽤“_”匹配任何单个字符,⽽“%”匹配任意数⽬字符(包括零个字符).在 MySQL中,SQL的模式缺省是忽略⼤⼩写的.下⾯显⽰⼀些例⼦.注意在你使⽤SQL模式时,你不能使 ...
double类型字符串转换成⼀个纯数字字符串和⼀个⼩数点位数的c++代码
今天⼯作中遇到⼀个要不⼀个double型的字符串转换成⼀个纯字数字符串和⼀个标志这个数字字符串的⼩数点有⼏位的int类型 例
如:“23.123”--->“23123” + 3  ⽐较简单.就是 ...
js+css3 动画数字累加
css: .kk{ width:100px; height:100px; display:inline-block; color:red; text-align:center; position: r ...
java通过JNI接⼝调⽤C语⾔-初级
JNI(java native interface):即java本地调⽤C的接⼝. 先看整体运⾏: 下⾯是过程: #vim test.java public class test{ public na ...
ActiveMQ的配置与使⽤
1.什么是ActiveMQ MQ全称为Message Queue, 消息队列(MQ)是⼀种应⽤程序对应⽤程序的通信⽅法.应⽤程序通过写和检索出⼊列队的针对应⽤程序的数据(消息)来通信,⽽⽆需专⽤连接来 ...
⽹站开发进阶(⼆⼗九)HTML特殊转义字符

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。