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

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

定时新章节页面里用到了 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 日

相关推荐
_阿南_7 小时前
项目中新增给AI制定的代码规范
前端·程序员
名字还没想好☜7 小时前
React 实现暗黑模式切换:localStorage 持久化、SSR 首屏闪烁与跟随系统主题
前端·javascript·react.js·ecmascript·react·next.js
自动化监测Learner8 小时前
主流 Web 端地图引擎对比:选型指南与优劣分析
javascript
console.log('npc')9 小时前
Git 冲突与 AI 协助指南
前端·人工智能·git·大模型
爱学堂IT分享10 小时前
Cesium可视化系统实战课程-Cesium教程学习
前端
糖墨夕10 小时前
理解大语言模型:Agent 的“大脑”
前端·agent
Rain的Java大神之路10 小时前
JavaWeb开发如何解决跨域问题
java·前端·后端·nginx·web安全·面试·运维开发
cpolar技术支持11 小时前
浏览器也能跑本地 AI:用 Transformers.js + WebGPU 做一个最小推理 Demo,cpolar 给同事远程体验
前端·ai·cpolar·webgpu·transformers.js
计算机魔术师12 小时前
OpenAI 发布 GPT-6 Astra:多项基准刷新纪录, cybersecurity 能力达 Critical 阈值
前端
xy345312 小时前
Axure9.0中继器遮罩实现方法
前端·ui·html·axure·原型·产品设计