@yiero/gmlib
Version:
GM Lib for Tampermonkey/ScriptCat
47 lines (46 loc) • 1.43 kB
TypeScript
/**
* 设置输入选项接口
*/
export interface ISetValueOptions {
/**
* 是否触发 focus/blur 事件
*
* 开启后,会在设置值前后触发 focus 和 blur 事件,
* 模拟用户手动输入的完整交互流程
*
* @default false
*/
triggerFocusBlur?: boolean;
}
/**
* 设置输入框的值
*
* 绕过 React/Vue 等框架对 value setter 的拦截,
* 使用原生 setter 设置值并触发相应事件。
*
* 适用于需要在框架应用中通过脚本设置输入框值并触发响应式更新的场景。
*
* @param element 目标输入元素(input 或 textarea)
* @param value 要设置的值
* @param options 配置选项
*
* @example
* // 设置输入框的值
* const input = document.querySelector('input');
* setValue(input, 'hello');
*
* @example
* // 设置 textarea 的值
* const textarea = document.querySelector('textarea');
* setValue(textarea, 'multi-line\ntext');
*
* @example
* // 设置值并触发 focus/blur 事件(模拟用户输入流程)
* setValue(input, 'hello', { triggerFocusBlur: true });
*
* @example
* // 在 React 应用中使用
* const reactInput = document.querySelector('#react-input');
* setValue(reactInput, 'new value'); // 会触发 React 的 onChange
*/
export declare function setValue(element: HTMLInputElement | HTMLTextAreaElement, value: string, options?: ISetValueOptions): void;