浏览器插件开发经验分享二:如何处理日期控件

今天搞定了小插件的"定时新章节"功能,我的浏览器小插件又有了小小更新。

定时新章节页面里用到了 Arco Picker 组件,处理这个组件 AI 一开始也是一头雾水。由于浏览器插件开发是将 js 注入到别人的 html 页面之内,所以我们不能引用类库、用常规的前端方法去设置日期/时间控件的值。

怎么办?

直接设置是行不通的,设置完之后还会恢复成默认值。

像这样的情况,我在一篇文章分享中提过了,这是属于 AI 不熟悉的业务逻辑。当然现在我熟悉了,我指导 AI 完成了正确的开发,这是因为我懂前端开发,我懂 html/js/css 及浏览器插件接口这些东西。如果我不懂呢?我知道什么提示语能让 AI 做出正确的行动吗?我可以,并不代表别人也可以。如果我不共享我的项目数据、不提供给 AI 作为训练资料,别人遇到类似情况也要像我一样从头摸索。

今天我在 X 上看到一篇帖子,说某公司计划把前端部门裁掉,只保留产品部门和后端部门,后端部门提供接口价值,产品部门负责起所有 UI 和前端工作。

我想问问这位公司老板,产品部门的工作包括前端的 Debug 吗?

你把前端部门解散了,等产品部门 Debug 搞不定的时候,你就只能抓耳挠腮了。Gemini 3 Pro 在大多数项目上可以,但不代表在所有项目上都能顶用,尤其在创新业务上。除非你的项目没有创新,话又说回来,项目没有创新,产品部门和后端部门也可以砍掉,只留一个全栈工程师就够了。希望这个帖子只是一个段子。

最后说一下,在浏览器插件开发里面,Arco 日期/时间控件怎么处理?

一共分两步。首先,先用下面这个通用的工具函数设置控件的值:

rust 复制代码
function setReactInputValue(inputElement, newValue) {
    if (!inputElement) return;
​
    // 1. 获取原生 input 的 value setter
    // 这是为了绕过 React 对 value 属性的劫持
    const nativeInputValueSetter = Object.getOwnPropertyDescriptor(
        window.HTMLInputElement.prototype, 
        "value"
    ).set;
​
    // 2. 调用原生 setter 设置值
    nativeInputValueSetter.call(inputElement, newValue);
​
    // 3. 构造并触发 input 事件 (React 监听的是 input 事件来更新 state)
    const event = new Event('input', { bubbles: true });
    inputElement.dispatchEvent(event);
    
    // 4. 有些组件可能还需要触发 change 或 blur
    inputElement.dispatchEvent(new Event('change', { bubbles: true }));
    inputElement.dispatchEvent(new Event('blur', { bubbles: true })); // 触发失焦关闭面板
}

设置完以后,控件处于打开状态,接着再分别单击子控件确认。对于日期控件,就是选择当前被选中的那个值所在的控件,点击它即可。对于时间控件,就是单击一个小"确定"按钮。

11月 25 日

相关推荐
hzxpaipai38 分钟前
杭州企业官网怎么建设?从策划到上线的5步建站方法
运维·服务器·前端·网络
怕浪猫44 分钟前
2026年金九银十,我面了22个前端
前端·javascript·面试
IT_陈寒1 小时前
Vue 这个响应式陷阱,我的头发都掉没了
前端·人工智能·后端
前端的日常1 小时前
一个人+AI做情侣食谱小程序,30天纯赚
前端·javascript·后端
qq_316837751 小时前
阿里云百炼 fun-asr-realtime uniapp vue3 调用
javascript·vue.js·uni-app
庄园特聘拆椅狂魔2 小时前
Java 后端转全栈的第一课:从前端项目搭建到技术选
java·开发语言·前端
triumph_passion2 小时前
前端路由策略:Memory、Hash 与 History
前端
李剑一2 小时前
AntDesign老版本没有月份和年份区间选择组件?我封装了一个完美版,附源码!
前端·vue.js
牧艺2 小时前
浏览器端 3D 看车重磅升级:从三款展车到可试驾的八车展厅
前端·three.js·交互设计
老男孩游戏时光2 小时前
Electron 桌面应用开发入门,前端也能写客户端
前端