ファイル数が多いと(1000単位)現状のDwだとファイルを検索するのが異様に面倒なので
ローカルファイルのインクリメンタルサーチ(オートコンプリート、オートサジェスト)機能とかだれか作ってないものか
Dreamweaver Exchangeを漁ってみたのだけど、それらしいものが無かったので
自分で実装してみることにした。(知ってるという方ご一報ください。)
機能拡張を作るときはいつもExchangeから自分の作りたいものに近いものをDLして
中のソースを読みつつヘルプを参照しながら改造していく感じです。
今回はインクリメンタルサーチというものを1から実装するのはきついので
YahooのASTRA AutoCompleteとか
SpryのAuto-Suggest
とか使えるか試しながらやろうと開発開始。開発環境はWin CS3。
まずSpryだけどSpryData.jsを読み込んだらエラーが出たのでこれはダメ。
JSでほかにサジェスト機能を提供しているsuggest.js – 入力補完ライブラリ
も試したがダメ。そもそもDreamweaverDOMでは要素追加するのにcreateElementはできなくてinnerHTMLかouterHTMLをつかうっぽい。
参照:Dreamweaver DOM のオブジェクト、プロパティ、およびメソッド
Dreamweaver の拡張機能での JavaScript の処理方法
拡張機能の BODY では、プラグインがサポートされています。プラグインは、常に play に設定されています。document.write() ステートメント、Java アプレット、Microsoft ActiveX コントロールは、拡張機能ではサポートされていません。
ちょっとこの時点できついのでいったん保留してFlashを使う方向で進めてみる。
Fireworks、Flashにはswfファイルでできた拡張パネルを読み込んで使えるのでDwでもあるかと探したら
Flash Expression Panelというのがでてきた。
中をのぞいてみると、
dw.newFlashFloater(swfpath, floatername, [groupname],[tabname],[scalemode],[dockside],[isTarget])
のような書き方でflashファイルをロードできるらしい。(がドキュメントにも載っておらず、newFlashFloaterでぐぐったら出てきたくらい。MX時代のものらしい)
でまねしてやってみるもswfからExternalInterfaceでcallしてみるもうんともすんとも言わない。<今ここ
AS3のswfファイルだとだめなのか、DwがC++ランタイムエラーをはいて落ちたり
これもイレギュラーな方法なんかなぁ。とあきらめていると
どうやらCS4からFlashパネル作成に関するサポート関数が出来たようだ。
参照:Adobe Dreamweaver * Flash panels and dialogs functions
とりあえずCS4でうまくいくのかどうか試したい。
あとCS3以下でもやる方法が無いのか引き続き調査していきたい。
今年はなぜか機能拡張が自分の中で熱かったなぁ。
皆さんよいお年を~