User:かんがへなし/ひらがな、カタカナの入れ替へ
ひらがなとカタカナを入れ替えたい場合について
手順
edit- アカウントを作り、ログインする。
「User:ユーザー名/monobook.js」の編集画面を出す。
「ユーザー名」の所は、貴方のアカウントにしてください。また「monobook」は、貴方が選んだスキン(MediaWikiの見た目)の名前を全て小文字にした名前です。デフォルトは「monobook」です。
- 左の「search」の所のテキストボックスに「User:ユーザー名/monobook.js」と入れて「Go」ボタンをクリックしてください。
- そして、表示されたページの「edit」をクリックして編集画面を出してください。
- 後に示すJavaScriptをコピーペーストして「Save page」ボタンをクリックして保存する。
- 「F5」キーなどで読み込みなおす。
使い方
editこのJavaScriptを使うと、表示時に、平仮名と片仮名を入れ替えることが出来ます。 ただし、一瞬だけ元の状態の物が表示されてしまう場合があります(JavaScriptを使っている為の制限)。
また、このJavaScriptによって、「log out」(日本語だと「ログアウト」)の次に「かな」が付け足されます。 その「かな」をクリックすると、再び平仮名と片仮名が入れ替わります。
JavaScript
edit次に示すJavaScriptは、かんがへなしが作りました。 好き勝手にコピーして、そのコピーを好みに合わせて改変してお使いください。 ただし、作者は、一切の責任を負わないものとします。
コピーする場合は、「/* <pre> */」から「/* </pre> */」までを、記事として表示されている状態でコピーするのが良いと思います。
/* <pre> */ function exchangeHiraganaKatakana(str) { var ret_str = ""; var code; var i; for (i = 0; i < str.length; i ++) { code = str.charCodeAt(i); if (0x3041 <= code && code <= 0x30F4) { if (code <= 0x3094) code += 0x60; else if (0x30A1 <= code) code -= 0x60; } ret_str += String.fromCharCode(code); } return ret_str; } function exchangeAllKanaInner(element) { var i, j; var obj; var attrs; var name = element.nodeName.toLowerCase(); if (name == "textarea" || name == "input" ) { return; } else if (name == "option") { if (! element.getAttribute("value")) return; } for (i = 0; i < element.childNodes.length; i ++) { obj = element.childNodes[i]; if (obj.nodeType == 1) { // element exchangeAllKanaInner(obj); } else if (obj.nodeType == 3) { // text node obj.nodeValue = exchangeHiraganaKatakana(obj.nodeValue); } } } function exchangeAllKana() { var obj = document.getElementsByTagName("body").item(0); exchangeAllKanaInner(obj); } function addKanaExchangeTab() { var new_a = document.createElement("a"); new_a.setAttribute("href", "javascript:exchangeAllKana();"); new_a.appendChild(document.createTextNode("カナ")); var new_li = document.createElement("li"); new_li.setAttribute("id", "pt-kana"); new_li.appendChild(new_a); var obj = document.getElementById("pt-userpage").parentNode; obj.appendChild(new_li); exchangeAllKana(); // ←始めに入れ替えをしないなら、この行を消すかコメントアウトする。 } if (window.addEventListener) window.addEventListener("load", addKanaExchangeTab, false); else if (window.attachEvent) window.attachEvent("onload", addKanaExchangeTab); /* </pre> */