開発日誌-20160517-別冊-ソースの入手 のバックアップ差分(No.1)


  • 追加された行はこの色です。
  • 削除された行はこの色です。
* はじめに [#c9c04d61]

このWikiを編集するページのソースを読むと、タグ挿入ボタンをクリックしたときには
 pukiwiki_tag('size');
といった関数呼び出しが発生しています。

これの実体がどこにあるのをブラウザ越しに捜すのは骨が折れるので、''ソースコードを入手してgrepしました''。ソースの入手方法はちょっと煩雑なので、下記に詳述します。

結論から言うと、この関数の実体は
- [[skin/gecko.js>https://github.com/miko2u/pukiwiki-plus-i18n/blob/master/skin/gecko.js]]
- [[skin/winie.js>https://github.com/miko2u/pukiwiki-plus-i18n/blob/master/skin/winie.js]]

の2箇所で、どちらが呼ばれるのかは [[skin/default.js>https://github.com/miko2u/pukiwiki-plus-i18n/blob/master/skin/default.js]] でブラウザを自動判別して決定しています。

** gecko.jsでの実装 [#c1338b47]

Gecko系(ポピュラーなブラウザでいうとFirefox、Chrome、Opera、Safariなど)では、
- var t = document.getElementById('text1');

のように入力欄オブジェクトを取得して、
- t.selectionStart
- t.selectionEnd

という2つのプロパティを読み書きすることができます。入力されている文字列の全文は t.value で読み書きできるので、
- 取得する際は、t.value.substring ( t.selectionStart, t.selectionEnd ) とすればOKです。
- 選択範囲を差し替えるには、まず差替後の全文をt.value に (選択範囲より前の文字列) + (差替後の文字列)



* ソースの入手方法 [#z4ad48b5]


ソースの所在地は次の通り:
- [[公式サイトのダウンロードページ>http://pukiwiki.cafelounge.net/plus/?Download]]から、1.4.7plus-u2-i18n rev1726というバージョンが入手できます。
- このページの末尾の「開発リリース」はリンク切れになっています。[[トップページ>http://pukiwiki.cafelounge.net/plus/?FrontPage]]には2011年12月19日の日付で「XSS脆弱性の修正─i18n」とありますが、その差替ファイルもリンク切れになっています。
- ところが、そのトップページには2012年3月5日付で「githubに仮移行」とあり、[[そこに書かれているアドレス>https://github.com/miko2u/pukiwiki-plus-i18n/]]を開くと最新版が入手できます。
-- ファイル・フォルダ一覧から「plugin」フォルダをさがすと「[[XSS脆弱性の修正(JVN#76515037)>https://github.com/miko2u/pukiwiki-plus-i18n/commit/a2083e106d235744732ed355fd161e632b13405a]]」とあり、これをクリックすると、2011念12月17日に修正が行われていることが分かります。
-- Gitについてよくわかっていない人は「Download ZIP」をクリックしてzipファイルを落とし、それを解凍すればOKです。