del.icio.usのタグに英語しか使わない人のためのGreasemonkeyスクリプト
せっかくなのでさっきのエントリの turnOffIME()
を使ってdel.icio.us用のGreasemonkeyスクリプトを書いてみました。Windows限定です。
機能は4つ。
- 投稿ページのtags欄にフォーカスするとIMEがオフになる。
- ページ上部のパンくずリストのタグを入力する所にフォーカスするとIMEがオフになる。
- 投稿ページを表示したときにtags欄にフォーカスする。
- 投稿ページじゃなかったらパンくずリストのタグを入力する所にフォーカスする。
追記 2007-01-15 19:55
IMEのキャレットが表示されなくなっていた不具合を修正しました。
コード
// ==UserScript== // @name del.icio.us IME OFF // @namespace http://d.hatena.ne.jp/margin/ // @include http://del.icio.us/* // ==/UserScript== (function(){ function turnOffIME(focusElement) { function c() { var s = document.createElement('span'); s.innerHTML = '<input type="password" style="visibility:hidden;position:fixed">'; return document.body.appendChild(s.firstChild); } var p = c(); p.focus(); document.body.removeChild(p); if (focusElement && focusElement.focus) { focusElement.focus(); } else { var x = turnOffIME.x = turnOffIME.x || c(); x.focus(); x.blur(); } } function turnOffIMEOnFocus(element) { element._focused = false; element.addEventListener('focus', function() { if(!this._focused) { this._focused = true; turnOffIME(this); } }, false); element.addEventListener('blur', function(){ this._focused = false; }, false); } window.addEventListener('load', function() { var crumb = document.getElementById('crumb'); if (crumb) { var crumbs = crumb.getElementsByTagName('input'); crumb = crumbs[crumbs.length-1]; turnOffIMEOnFocus(crumb); crumb.focus(); } var tags = document.getElementById('tags'); if (tags) { turnOffIMEOnFocus(tags); tags.focus(); } }, false); })();