X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=mim.js;h=be5bf7b222b8ea988468b5b38d773aa5d8054b3e;hb=948f7eae301c75877ff2d7b6a476ca1d33178b99;hp=bb7f551c4a864a7327933e57ea11ff6da2bef46d;hpb=bf5b210a6d6d3939d49bdb17a20cb576990dbfe0;p=m17n%2Fm17n-lib-js.git diff --git a/mim.js b/mim.js index bb7f551..be5bf7b 100644 --- a/mim.js +++ b/mim.js @@ -222,14 +222,26 @@ MIM.load_sync = function (im) if (! obj) alert ("XMLHttpRequest not supported"); - obj.open ('GET', 'latn-post.mimx', false); - obj.overrideMimeType ('text/xml'); - obj.send (""); - im.body = obj.responseXML; - document.AnXml = im.body; - if (MIM.parse (im)) - return im; - alert (im.parse_error); + if (true) + { + obj.open ('GET', im.url, false); + obj.send (""); + eval (obj.responseText); + if (! im.keymap) + alert ("obj.responseText"); + return im; + } + else + { + obj.open ('GET', 'latn-post.mimx', false); + obj.overrideMimeType ('text/xml'); + obj.send (""); + im.body = obj.responseXML; + document.AnXml = im.body; + if (MIM.parse (im)) + return im; + alert (im.parse_error); + } return false; }; @@ -241,6 +253,8 @@ MIM.load = function (im) s.src = im.url; document.body.appendChild (s); document.body.removeChild (s); + if (! im.keymap) + alert ("load fail"); im.status = 2; return im; }; @@ -528,7 +542,7 @@ MIM.select_im = function (event) document.getElementsByTagName ('body')[0].removeChild (target); target.target.focus (); if (im && im != MIM.current_im) - MIM.current_im = MIM.load (im); + MIM.current_im = MIM.load_sync (im); }; MIM.destroy_menu = function (event) @@ -569,16 +583,41 @@ MIM.select_menu = function (event) document.getElementsByTagName ('body')[0].appendChild (sel); }; +MIM.textinput = function (event) +{ + var str = '' + var changed = false; + for (var i = 0; i < event.data.length; i++) + { + if (event.data.charAt (i) == 'あ') + { + str += 'ア'; changed = true; + } + else + str += event.data.charAt (i); + } + alert (str); + if (changed) + { + var e = document.createEvent ('TextEvent'); + e.initTextEvent ('textInput', event.canBuggle, event.cancelable, event.view, + str, event.inputMode); + document.getElementById ('text').value = str; + event.target.dispatchEvent (e); + } +} + MIM.init = function () { MIM.add_event_listener (window, 'keydown', MIM.keydown); MIM.add_event_listener (window, 'keypress', MIM.keypress); MIM.add_event_listener (window, 'mousedown', MIM.select_menu); + MIM.add_event_listener (window, 'textInput', MIM.textinput); if (window.location == 'http://localhost/mim/index.html') MIM.server = 'http://localhost/mim'; MIM.current_im = MIM.register ('latin', 'post', 'latn-post.js'); MIM.register ('th', 'kesmanee', 'th-kesmanee.js'); - MIM.load (MIM.current_im); + MIM.load_sync (MIM.current_im); }; MIM.init_debug = function ()