又一个新技术出来了!这就是Invoker Commands API!是一个新的原生Web平台技术,并非传统的前端框架,也不是什么后端API,而是基于html标准,新增的一组API能力!Invoker Commands API的出现,可以说是给传统的html又新增了一项技能,解决了传统html页面交互功能较弱的问题!今天丁老师就详细做一下关于Invoker Commands API的介绍!
Invoker Commands API的诞生
Invoker Commands API(英语发音:/ɪnˈvoʊkər kəˈmændz ˌeɪ piː ˈaɪ/),最初于2023年,在Invoke Commands的理念在OpenUI社区提出,然后到了2025年12月,达到了Baseline 2025,从Chrome 135版本、Firefox144和Safari 26.2版本起,几乎所有主流浏览器都已完成支持。
Invoker Commands API到底是啥?
其实说白了,Invoker Commands API就是对传统html前端强的一项技术能力,他解决了前端开发中一个长期的比较麻烦的问题,比如在以前的前端开发中,任何UI交互,比如打开弹窗、展开菜单等效果,都需要手写Javascript代码,后来虽然诞生出了很多UI框架,JS框架可以直接使用,但基本还是等于使用别人封装好的代码。
而现在则不同了,使用Invoker Commands API,则不需要再手写复杂的代码,做一些重复且无效率的体力工作。举个简单的例子,比如我在html中要做一个弹层提示,在以前要么是手写代码(从css到javascript全得自己完成),要么是使用第三方的UI框架(臃肿、不兼容),而现在不同了,现在不需要写javascript代码了,直接在html元素中定义标记就能搞定:
<button commandfor="dls" command="toggle-popover">帮助</button>
<div id="dls" popover>我是丁老师软件</div>直接把参数在html的元素对象中,就可以实现过去几百甚至几十行的代码效果:
看到没,点击按钮,弹出层直接显示出来了,不需要写Javascript代码就能实现。如果觉得不好看,还可以通过css进行美化。
简单的说,Invoker Commands API给html集成了更多功能,在前端开发时,更方便、更快捷、更标准,不需要再对部分功能手写javascript代码。
核心方法介绍
Invoker Commands API主要有两类命令构成,一种是内置自带的命令,一种是自定义命令。
一、内置命令
1.Dialog相关命令
| 名称 | 作用 | API |
|---|---|---|
| show-modal | 打开模态弹窗dialog | dialog.showModal() |
| close | 关闭dialog | dialog.close() |
| request-close | 关闭dialog确认窗口,可触发cancel取消事件 | dialog.requestClose() |
| show-modal | 以模态方式打开 | dialog.showModal() |
| show-modal | 以模态方式打开 | dialog.showModal() |
| show-modal | 以模态方式打开 | dialog.showModal() |
<button commandfor="myDialog" command="show-modal">打开</button>
<dialog id="myDialog">
<h2>提示</h2>
<button commandfor="myDialog" command="close">
关闭
</button>
</dialog>2.Popover相关命令
| 名称 | 作用 | API |
|---|---|---|
| show-popover | 显示Popover | popover.showPopover() |
| hide-popover | 隐藏Popover | popover.hidePopover() |
| toggle-popover | 显示/隐藏切换 | popover.togglePopover() |
<button commandfor="myPopover" command="toggle-popover">更多信息</button>
<div id="myPopover" popover>
这是一个 Popover。
<button
commandfor="myPopover"
command="hide-popover">
关闭
</button>
</div>二、自定义命令
命令格式为command="--你的命令名",自定义命令需以--开头,比如:
<button commandfor="editor" command="--clear">清空内容</button>
<div id="editor">
Hello World
</div>这个代码要实现,点击“清空内容”按钮,然后会自动的清除对应ID“editor”内的内容。当然,自定义命令,需要配合javascript完成,不然你只标记个--clear程序也不知道你到底想干啥,这一步的javascript是必须要写的,请看:
document.querySelector('#editor').addEventListener('command', event => {
if (event.command === '--clear') {
event.currentTarget.textContent = '';
}
});这就构成了一段完整的代码,首先页面会监控id=editor的按钮,然后当出现自定义的command的事件,即--clear事件时,会自动触发清空目标对象id的内容。
总的来说,Invoker Commands API的内置命令,是包含了一些常见的、原生的、浏览器行为(虽然现在只有6个API,但不排除以后还会增加和阔含),而自定义命令则是由开发者自己开发交互逻辑。
丁老师建议
1.由于是新技术,只有较新的浏览器才支持,因此对于新系统、新项目,可以使用。对于一些老旧的系统,则肯定无法兼容,最好不要使用。
2.目前虽然说已成熟使用,但这个东西说白了也只是锦上添花而已,并非属于革命性的技术能力更新,可有可无,没必要纯粹为了去javascript而强行改造现有项目。
3.针对复杂的业务逻辑,建议还是以传统javascript优先。
在使用libreoffice对office word转换为pdf时,出现source file could not be loaded的错误提示,看了下路径和文件,发现都正确,仔细检查了下,发现是缺少libreoffice的write组...
文件md5值是什么我们知道md5不仅可以对普通的字符串加密,而且也可以获取文件的md5值,这个md5值是对文件内容经过md5计算后生成的一段固定长度的值,这个值是和文件内容、大小绑定,文件内容出现一点变化,文件的md5值就会变化,相当于...
今天介绍一下,在开发架构中,经常遇到mongodb,mongo-capture,dbreplay,rabbitmq这些是些什么,能做什么用,由丁老师一个一个解答。其实,这些都属于软件开发项目中,比较主流,且程序开发系统架构经常用到的中间...
Google字体是谷歌官方的在线字体库,有包含中英文在内的几千种字体,全部免费,无版权、可商用!并且和其他字体网站不一样,不需要下载到本地,只需要复制一行代码即可使用!支持哪些应用?网站、小程序、APP、公众号、电商详情页、海报、PPT...
国外很多VPS购买后,只有密码,没有登录账号,如何登录呢?我们以one.com为例,购买了VPS后,只能设置密码,但是用root,也无法登录,是怎么回事呢?查了官方文档,原来修改的VPS密码,不是root的,这个VPS默认的账号是admin...
fontawesome所有图标class类名单,适用于4.7.0版本。总计有593个图标class类(包含别名):fa-500pxfa-address-bookfa-address-book-ofa-address-cardfa-addre...
二维码码有三个参数: 数据类型、大小(“像素 ”数)和纠错级别。能存储多少信息也取决于这些参数。例如,纠错级别越低,可存储的信息越多,但代码越难被读者识别。最大尺寸和最小纠错值如下:最大字符数 7089个字符(纯数字)字母数字 4296个字...
开发抖音小程序所需资料及费用概览随着短视频平台抖音(TikTok)在全球范围内的迅速崛起,越来越多的企业和个人开始意识到在抖音平台上开发小程序的重要性。抖音小程序不仅可以增强品牌曝光率,还能为用户提供更加便捷的服务体验。那么问题来了,开发一...