”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 用JavaScript和EdgeHTML打造你的专属浏览器

用JavaScript和EdgeHTML打造你的专属浏览器

发布于2025-04-14
浏览:585

本教程使用Microsoft Edge WebView控件和标准Web Technologies(HTML,CSS,JavaScript)在Windows 10中构建基本的Web浏览器。 虽然基于Mac的等效物不直接支持,但虚拟机或双启动内幕构建提供解决方法。 [2

WebView控件比IFRAME提供了重要的优势,包括改进了框架和文档加载事件的处理。

X-MS-WEBVIEW How to Create Your Own Browser with JavaScript Using EdgeHTML 标签提供了唯一功能,例如增强本地内容访问和屏幕截图功能。 生成的浏览器利用与Microsoft Edge相同的Web平台。

[2

完整的源代码可在GitHub上获得。您还可以通过从Windows商店安装应用程序或部署Visual Studio解决方案来直接体验浏览器。 [2 此项目展示了使用标准Web Technologies和WebView控件创建功能性Web浏览器的便捷性。 微软鼓励对Windows 10开发的进一步探索。 [2 本文是Microsoft系列的一部分,专注于实用的JavaScript,开源项目和跨浏览器兼容性最佳实践。 利用这些资源来增强您的网络开发技能:

dev.modern.ie:为过时的库,布局问题和可访问性问题提供免费工具。 为Mac,Linux和Windows提供虚拟机,以及Microsoft Edge的远程测试。 在跨浏览器测试中包括一个GitHub编码实验室。

Microsoft Edge Web Summit 2015:

提供有关新浏览器,支持的Web平台标准的深入信息,以及JavaScript社区的见解。

附加资源:

探索有关高级JavaScript技术,边缘渲染引擎,WebGL,托管Web应用程序等文章(链接到省略的链接)。 How to Create Your Own Browser with JavaScript Using EdgeHTML Cross-Platform工具:

使用Visual Studio Code(可用于Linux,MacOS和Windows)和Azure(免费试用)。

以下常见问题解答了有关使用EdgeHTML和JavaScript构建浏览器的常见问题:

EdgeHTML与其他引擎有何不同?

Edgehtml优先考虑轻量级设计,以更快地浏览并支持现代和传统渲染模式。

我可以使用其他引擎吗?
    是的,像闪烁,壁虎和webkit这样的引擎是替代方案,但是实现将有所不同。
  • 基本HTML,CSS和JavaScript知识,以及Microsoft Edge Browser。 处理用户输入?使用javascript事件侦听器进行用户操作(单击,文本输入等)。
  • 添加回/远前/刷新?
  • objects。 使用CSS样式浏览器元素。 第三方库?
  • 使用兼容库。
  • cross-platform兼容性? edgehtml是windows特定的;跨平台开发需要一个跨平台引擎。
  • 此修订后的响应保持原始内容的含义,同时改善了可读性和结构。 它也将某些部分凝结为简洁。
最新教程 更多>
  • 反射动态实现Go接口用于RPC方法探索
    反射动态实现Go接口用于RPC方法探索
    在GO 使用反射来实现定义RPC式方法的界面。例如,考虑一个接口,例如:键入myService接口{ 登录(用户名,密码字符串)(sessionId int,错误错误) helloworld(sessionid int)(hi String,错误错误) } 替代方案而不是依靠反射...
    编程 发布于2025-04-16
  • 如何使用组在MySQL中旋转数据?
    如何使用组在MySQL中旋转数据?
    在关系数据库中使用mySQL组使用mySQL组进行查询结果,在关系数据库中使用MySQL组,转移数据的数据是指重新排列的行和列的重排以增强数据可视化。在这里,我们面对一个共同的挑战:使用组的组将数据从基于行的基于列的转换为基于列。 Let's consider the following ...
    编程 发布于2025-04-16
  • 人脸检测失败原因及解决方案:Error -215
    人脸检测失败原因及解决方案:Error -215
    错误处理:解决“ error:( - 215)!empty()in Function openCv in Function MultSiscale中的“检测”中的错误:在功能检测中。”当Face Cascade分类器(即面部检测至关重要的组件)未正确加载时,通常会出现此错误。要解决此问题,必须...
    编程 发布于2025-04-16
  • 版本5.6.5之前,使用current_timestamp与时间戳列的current_timestamp与时间戳列有什么限制?
    版本5.6.5之前,使用current_timestamp与时间戳列的current_timestamp与时间戳列有什么限制?
    在时间戳列上使用current_timestamp或MySQL版本中的current_timestamp或在5.6.5 此限制源于遗留实现的关注,这些限制需要对当前的_timestamp功能进行特定的实现。 创建表`foo`( `Productid` int(10)unsigned not n...
    编程 发布于2025-04-16
  • 在PHP中如何高效检测空数组?
    在PHP中如何高效检测空数组?
    在PHP 中检查一个空数组可以通过各种方法在PHP中确定一个空数组。如果需要验证任何数组元素的存在,则PHP的松散键入允许对数组本身进行直接评估:一种更严格的方法涉及使用count()函数: if(count(count($ playerList)=== 0){ //列表为空。 } 对...
    编程 发布于2025-04-16
  • 在Java中使用for-to-loop和迭代器进行收集遍历之间是否存在性能差异?
    在Java中使用for-to-loop和迭代器进行收集遍历之间是否存在性能差异?
    For Each Loop vs. Iterator: Efficiency in Collection TraversalIntroductionWhen traversing a collection in Java, the choice arises between using a for-...
    编程 发布于2025-04-16
  • 如何同步迭代并从PHP中的两个等级阵列打印值?
    如何同步迭代并从PHP中的两个等级阵列打印值?
    同步的迭代和打印值来自相同大小的两个数组使用两个数组相等大小的selectbox时,一个包含country代码的数组,另一个包含乡村代码,另一个包含其相应名称的数组,可能会因不当提供了exply for for for the uncore for the forsion for for ytry...
    编程 发布于2025-04-16
  • FastAPI自定义404页面创建指南
    FastAPI自定义404页面创建指南
    response = await call_next(request) if response.status_code == 404: return RedirectResponse("https://fastapi.tiangolo.com") else: ...
    编程 发布于2025-04-16
  • 为什么不````''{margin:0; }`始终删除CSS中的最高边距?
    为什么不````''{margin:0; }`始终删除CSS中的最高边距?
    在CSS 问题:不正确的代码: 全球范围将所有余量重置为零,如提供的代码所建议的,可能会导致意外的副作用。解决特定的保证金问题是更建议的。 例如,在提供的示例中,将以下代码添加到CSS中,将解决余量问题: body H1 { 保证金顶:-40px; } 此方法更精确,避免了由全局保证金重置引...
    编程 发布于2025-04-16
  • 如何从Google API中检索最新的jQuery库?
    如何从Google API中检索最新的jQuery库?
    从Google APIS 问题中提供的jQuery URL是版本1.2.6。对于检索最新版本,以前有一种使用特定版本编号的替代方法,它是使用以下语法:获取最新版本:未压缩)While these legacy URLs still remain in use, it is recommended ...
    编程 发布于2025-04-16
  • 如何使用Regex在PHP中有效地提取括号内的文本
    如何使用Regex在PHP中有效地提取括号内的文本
    php:在括号内提取文本在处理括号内的文本时,找到最有效的解决方案是必不可少的。一种方法是利用PHP的字符串操作函数,如下所示: 作为替代 $ text ='忽略除此之外的一切(text)'; preg_match('#((。 &&& [Regex使用模式来搜索特...
    编程 发布于2025-04-16
  • Java开发者如何保护数据库凭证免受反编译?
    Java开发者如何保护数据库凭证免受反编译?
    在java 在单独的配置文件保护数据库凭证的最有效方法中存储凭据是将它们存储在单独的配置文件中。该文件可以在运行时加载,从而使登录数据从编译的二进制文件中远离。使用prevereness class import java.util.prefs.preferences; 公共类示例{ 首选项...
    编程 发布于2025-04-16
  • HTML格式标签
    HTML格式标签
    HTML 格式化元素 **HTML Formatting is a process of formatting text for better look and feel. HTML provides us ability to format text without us...
    编程 发布于2025-04-16
  • 如何检查对象是否具有Python中的特定属性?
    如何检查对象是否具有Python中的特定属性?
    方法来确定对象属性存在寻求一种方法来验证对象中特定属性的存在。考虑以下示例,其中尝试访问不确定属性会引起错误: >>> a = someClass() >>> A.property Trackback(最近的最新电话): 文件“ ”,第1行, attributeError:SomeClass实...
    编程 发布于2025-04-16
  • 如何修复\“常规错误:2006 MySQL Server在插入数据时已经消失\”?
    如何修复\“常规错误:2006 MySQL Server在插入数据时已经消失\”?
    How to Resolve "General error: 2006 MySQL server has gone away" While Inserting RecordsIntroduction:Inserting data into a MySQL database can...
    编程 发布于2025-04-16

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3