首页 > 原创文章 > 技术应用 > 查看文章

Invoker Commands API 是什么?都有哪些能力?

所属分类:技术应用 来源: 丁老师原创 更新时间:2026-08-29 09:46 浏览: 594 IP属地: 深圳

又一个新技术出来了!这就是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的元素对象中,就可以实现过去几百甚至几十行的代码效果:image.png

看到没,点击按钮,弹出层直接显示出来了,不需要写Javascript代码就能实现。如果觉得不好看,还可以通过css进行美化。

简单的说,Invoker Commands API给html集成了更多功能,在前端开发时,更方便、更快捷、更标准,不需要再对部分功能手写javascript代码。

核心方法介绍
Invoker Commands API主要有两类命令构成,一种是内置自带的命令,一种是自定义命令。

一、内置命令
1.Dialog相关命令

名称作用API
show-modal打开模态弹窗dialogdialog.showModal()
close关闭dialogdialog.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显示Popoverpopover.showPopover()
hide-popover隐藏Popoverpopover.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优先。

相关文章

图片转为Base64代码的方法 | 图片在线...

各位同学知道吗?图片文件的存储,可以以文件形式存储在本地,也可以转为Base64代码,以代码的形式存储与数据中。这种将图片转为base64代码的方法非常灵活,可以广泛应用在各种软件开发项目中。比如我们在开发微信小程序时,如果我们通过cs...

如何使用Google Gemini大模型?

Google Gemini是一款非常强大的AI大语言模型,由google公司出品,支持包括中文语言在内的超过40种语言处理,在中文内容的处理方面,个人感觉比国内的大模型要优秀一些(主要是生成的内容质量、语义语法、内容重复性、文章结构等几...

日立Hitachi P1H6Q中央空调锁定面...

办公室的中央空调,是日立Hitachi的P1H6Q中央空调,需要用面板控制。这么炎热的夏天,因为空间大,空调即使开到22度也不是很凉,可有些同事,因为工位坐在出风口,她自己感觉很冷!所以每当我们这边把温度调到18度 20度的时候,她就去...

VSCode显示函数列表方法

在vscode中,默认是不显示函数列表的,需要手动开启。开启函数列表的具体方法是:1.点击顶部菜单查看,选择打开视图;2.在弹出的选项中,选择大纲;3.这个时候,visual studio code面板的左侧就显示出大纲面板了,面板中显...

推荐文章

国外VPS购买后如何登录?

国外很多VPS购买后,只有密码,没有登录账号,如何登录呢?我们以one.com为例,购买了VPS后,只能设置密码,但是用root,也无法登录,是怎么回事呢?查了官方文档,原来修改的VPS密码,不是root的,这个VPS默认的账号是admin...

微信小程序如何接入微信AI生态?附接入方法

2026年6月8日,微信团队发布了《关于开发者接入微信AI生态的指引》文章,旨在面向开发者提供接入微信AI生态的能力,对于开发者和企业而言,把自己的微信小程序接入微信AI生态,将有机会被微信AI推荐和调用,在传统小程序运营的基础上,等于是又...

国产信创项目操作系统要求用什么?web中间件...

从事技术开发的同学都知道,不管是做网站也好,开发各种业务系统也好,目前大多数企业部署的web环境是-操作系统:Linux,数据库:Mysql/MariaDB/PostgreSQL/MongoDB,Web容器:Nginx/Tomcat/Apa...

二维码可以存储多少个信息?

二维码码有三个参数: 数据类型、大小(“像素 ”数)和纠错级别。能存储多少信息也取决于这些参数。例如,纠错级别越低,可存储的信息越多,但代码越难被读者识别。最大尺寸和最小纠错值如下:最大字符数 7089个字符(纯数字)字母数字 4296个字...