【发布时间】:2015-07-12 06:47:35
【问题描述】:
我尝试在特定的TextArea 中模拟JavaScript 中的Enter。
这是我的代码:
function enter1() {
var keyboardEvent = document.createEvent('KeyboardEvent');
var initMethod = typeof keyboardEvent.initKeyboardEvent !== 'undefined' ? 'initKeyboardEvent' : 'initKeyEvent';
keyboardEvent[initMethod]('keydown', // event type : keydown, keyup, keypress
true, // bubbles
true, // cancelable
window, // viewArg: should be window
false, // ctrlKeyArg
false, // altKeyArg
false, // shiftKeyArg
false, // metaKeyArg
13, // keyCodeArg : unsigned long the virtual key code, else 0
13 // charCodeArgs : unsigned long the Unicode character associated with the depressed key, else 0
);
document.getElementById('text').dispatchEvent(keyboardEvent);
}
TextArea:
<textarea id="text"> </textarea>
当我调用 enter1() 时,它不会在 TextArea 中执行任何操作。这是为什么呢?
【问题讨论】:
-
@avrilalejandro 感谢 avril alejandro 的支持,但每个函数都因“输入”而失败。我不明白。
-
OP 可能永远不会回来了,但是对于带着同样问题来到这里的未来读者来说,您将面临一个 XY 问题。 不,您不想触发 Enter 事件。您想要的是产生与事件通常产生的相同的动作。在这里很难确定它是什么,但也许他们想插入一个新行?然后插入一个新行。也许他们有一个会触发第三个动作的事件监听器?然后直接调用第三个动作。
标签: javascript html dom-events keyboard-events enter