<!DOCTYPE HTML> <html> <head> <script type="text/javascript" src="/tests/SimpleTest/EventUtils.js"></script> </head> <body> <textarea id="t" rows="4" style="-moz-appearance: none"></textarea> <script> if (typeof(addLoadEvent) == 'undefined') { _newCallStack = function(path) { var rval = function () { var callStack = arguments.callee.callStack; for (var i = 0; i < callStack.length; i++) { if (callStack[i].apply(this, arguments) === false) { break; } } try { this[path] = null; } catch (e) { // pass } }; rval.callStack = []; return rval; }; function addLoadEvent(func) { var existing = window["onload"]; var regfunc = existing; if (!(typeof(existing) == 'function' && typeof(existing.callStack) == "object" && existing.callStack !== null)) { regfunc = _newCallStack("onload"); if (typeof(existing) == 'function') { regfunc.callStack.push(existing); } window["onload"] = regfunc; } regfunc.callStack.push(func); }; } addLoadEvent(function() { var area = document.getElementById('t'); area.focus(); var domWindowUtils = SpecialPowers.getDOMWindowUtils(window); // input raw characters synthesizeCompositionChange( { composition: { string: "\u306D", clauses: [ { length: 1, attr: COMPOSITION_ATTR_RAW_CLAUSE } ] }, caret: { start: 1, length: 0 } }); synthesizeCompositionChange( { composition: { string: "\u306D\u3053", clauses: [ { length: 2, attr: COMPOSITION_ATTR_RAW_CLAUSE } ] }, caret: { start: 2, length: 0 } }); // convert synthesizeCompositionChange( { composition: { string: "\u732B", clauses: [ { length: 1, attr: COMPOSITION_ATTR_SELECTED_CLAUSE } ] }, caret: { start: 1, length: 0 } }); // commit synthesizeComposition({ type: "compositioncommitasis" }); document.body.clientWidth; // undo synthesizeKey("Z", {accelKey: true}); }); </script> </body> </html>