Source code
Revision control
Copy as Markdown
Other Tools
<!DOCTYPE HTML>
<html>
<head>
<title id='desc'> compositionstart Event and keydown Event </title>
<script type="text/javascript">
var PassTest = function()
{
document.getElementById("testresult").firstChild.data = "PASS";
}
var FailTest = function()
{
document.getElementById("testresult").firstChild.data = "FAIL";
}
var TARGET;
var ExpectResult = ["keydown", "compositionstart", "keyup"];
var ActualResult = [];
window.onload = function(e)
{
try
{
TARGET = document.getElementById("target");
TARGET.addEventListener("compositionstart", TestEvent, true);
TARGET.addEventListener("keydown", TestEvent, true);
TARGET.addEventListener("keyup", TestEvent, true);
}
catch(ex)
{
FailTest();
}
}
function TestEvent(evt)
{
ActualResult.push(evt.type);
if (evt.type == "keyup")
{
if (ExpectResult.toString() == ActualResult.toString())
{
PassTest();
}
else
{
FailTest();
}
TARGET.removeEventListener("compositionstart", TestEvent, true);
TARGET.removeEventListener("keydown", TestEvent, true);
TARGET.removeEventListener("keyup", TestEvent, true);
}
}
</script>
</head>
<body>
<h3>DOM Events</h3>
<h4>
Test Description: When a keyboard is used to feed an input method editor,
compositionstart event type is generated after a keydown event.
</h4>
<pre>
<input id="target" value=""/>
Steps:
1) Open Japanese Microsoft IME and select Hiragana input method
2) Type 'a' in the above textbox using keyboard
3) <a href="compositionstart.keydown.html">Click here</a> to test again if not following the steps exactly
</pre>
<p>Test passes if the word "PASS" appears below after following the above steps.</p>
<div>Test result: </div>
<div id='testresult'>FAIL</div>
</body>
</html>