从客户端浏览器控制台手动激活组件事件

时间:2016-08-01 09:12:53

标签: javascript jquery reactjs javascript-events console


在我的网站中,我使用React Js创建了一个div元素,并且它也是可编辑的。如果用户编辑内容,它将触发onInput功能。

r.createElement("div", {
                dangerouslySetInnerHTML: {
                    __html: e
                },
                dir: "auto",
                ref: "input",
                spellCheck: this.props.spellCheck,
                "data-tab": this.props.editable ? 1 : null ,
                contentEditable: this.props.editable,
                className: t,
                onInput: this.onInput,
                onPaste: this.onPaste,
                onCut: this.onCut,
                onKeyUp: this.onKeyUp,
                onKeyPress: this.onKeyPress,
                onMouseDown: this.onMouseDown,
                onContextMenu: this.onContextMenu,
                onFocus: this.props.onFocus,
                onBlur: this.props.onBlur
            }

我正在尝试从客户端Chrome浏览器控制台为该元素设置内容,而不是触发 onInput 事件。
我的问题是有一种方法可以为元素添加输入动态调用onInput事件

1 个答案:

答案 0 :(得分:4)

您可以从控制台发送事件

1.通过querySelector ..找到dom节点,或者在“Elements”选项卡中选择元素并使用$ 0;

const input = document.querySelector('[contentEditable]');

2.创建活动

const eventX = new Event('input', {bubbles: true});

3.改变价值

input.textContent = "TEST";

4.dispatch事件

input.dispatchEvent(eventX)

<强> jsfiddle DEMO test

enter image description here