【发布时间】:2011-09-18 09:43:26
【问题描述】:
这是我的代码:
<script>
function f(){
var i=document.getElementById("i");
i.focus();
var evt = document.createEvent("KeyboardEvent");
evt.initKeyEvent("keypress", true, true, null, false, false, false, false,
0, 32);
i.dispatchEvent(evt);
}
</script>
<body onload="f();">
<input id="i"/>
</body>
在 Firefox 中打开脚本,它就可以工作了。输入框内的空白处表示代码已经生效。
但是上面的代码在 Chrome、Safari、Opera 等中不起作用。
我们如何修改上面的代码以使其在这些浏览器中工作?
【问题讨论】:
-
Reproduced in Opera 11 with JS Fiddle,但 Chromium 12 报告:
Uncaught Error: NOT_SUPPORTED_ERR: DOM Exception 9,Firefox 4:Error: uncaught exception: [Exception... "Operation is not supported" code: "9" nsresult: "0x80530009 (NS_ERROR_DOM_NOT_SUPPORTED_ERR)" location: "http://fiddle.jshell.net/_display/ Line: 19"]。我怀疑这不是特定于 Opera 的问题,除非重现的演示大错特错。 -
您需要显示代码的更多上下文。你能否请一个最小可行的例子来说明问题是什么?三行代码不足以充分诊断问题。
-
@David 我将代码范围从stackoverflow.com/questions/668720/…
-
感谢 Jack,但这仍然不足以提供帮助。那只是一个功能。我们需要查看您在哪里执行它(您如何调用它以及您的 HTML 是什么)。请链接到您以触发错误的方式调用该函数的小示例。
-
@nathan 谢谢,我已经重新编辑了
标签: javascript html web