site-script.js の整理
とりあえず似非 require を使うことに。ミニ JSAN みたいな実装にしといた。変数のリストを取得できないからこれ以外方法がなさげ。まぁ必要なオブジェクトを明示できるから悪いとはいえないんだけど。
function require(__path, __exports) {
if (!__exports) __exports = [];
var __code = (require.LOADED_FEATURES[__path]) ? require.LOADED_FEATURES[__path] : HTTP.get(__path);
(function () {
with (Global) {
eval(__code);
}
for (var __i = 0, __len = __exports.length; __i < __len; __i++) {
Global[__exports[__i]] = eval(__exports[__i]);
}
})();
require.LOADED_FEATURES[__path] = __code;
return true;
}
require.LOADED_FEATURES = {};
require("/ruby.js");
require("/xb.js", ["document_addEventListener", "document_removeEventListener"]);
require("/dom.js", ["getElementsByAttribute", "getElementsByClassName"]);
require("/mm.js", ["MetadataManipulator"]);
require("/code.js", ["markupCode"]);
require("/util.js", ["MessageArea", "ProgressBar", "AccessibilityOption"]);
余計なことをしても使わないので、できるだけ短くすることにした。"Obj.prop" みたいなのも渡せるようにしたやつも書いてみたけど思ったより長くなったので却下した。
HTTP.get とか書いてるけどこれより前にそういうのを書いてある。
さっき気付いたんだけど IE で表示崩れるよね。なんか直す気力がないから放置するよ。別に読めないわけじゃないし。それにともなって MM のテストをいったん廃止
関連エントリー
- 似非 xml-mode in textarea 制限つきながら、IE でも動くように。閉じタグ補完とかだけ。 Ajax による Full IME のコードをパクっています。 keypres...
- Javascript で require もどき・eval の実行コンテキスト Javascript はファイル間の依存関係を一切書けない。ロードする順番は結局 script 要素の出現順、つまり HTML 依存。どう考...
- *-mode in textarea 似非 xyzzy テキストエリアの管理部分と、モード用機能を分離してみた。似非ミニバッファ搭載! 新しくモード用のオブジェクト (関数) を...
- 動的補完 in textarea textarea で動く劣化コピー xml-mode 続き。 TAB 入力時動的補完リストを表示させてみる。たいして意味がない気がする。xy...
- prototype.js each 使えないから最新の RC を試したんだけど、思ったより使えない。Event.observe って、もうちょっとクロスブラウザに考慮...