コマンド

2000/03/19
=====================================================[ No.06 2000/03/19 ]==

                Dreamweaver Programming < コマンド >

                                                            [ BACK NUMBER ]
                     http://www2s.biglobe.ne.jp/~tomoChan/dreamweaver/mail/
===========================================================================


◆新作コマンド
===========================================================================
期間限定ですが、IISをコントロールするJSExtensionを作りました。
http://www2s.biglobe.ne.jp/~tomoChan/dreamweaver/aspexe.zip
2000年3月の期間のみ試用できます。

できることは、仮想ディレクトリの一覧取得、仮想ディレクトリの追加・削除、
パーミッションの変更 です。readme.txtにJSExtensionの使用方法を書いてます。
IISまたはPWSが入っている環境で試してください。

◆コマンド
===========================================================================
カスタマイズ最後のコマンドとなりました。コマンドはDreamweaverの要です。
コマンドといえばコマンドメニューから選ぶものだけと思われますが、実はメニュー
からの動作のすべてがコマンドで実装されています。ドキュメントを直接編集ること
が許されているので、ビヘイビア、オブジェクト等と比べると出来ることがすごく多
いです。

今回はHTMLファイル対して実行するコマンドで
http://www2s.biglobe.ne.jp/~tomoChan/dreamweaver/dream.zip
の中にあるURLText.htmを使って説明します。

コマンドはメニューから呼び出されます。呼び出されると最初に実行されるのが
function commandButtons()
関数です。この関数の戻り値で、コマンドのダイアログに表示されるボタンを設定
します。
URLText.htm( 119 )
function commandButtons()
{
	return new Array( "OK",	 "TextURL()" 
				   , "キャンセル", "window.close()" );
}

最初にボタン名、その後にボタンを押したときに呼び出す関数となります。

次にダイアログの内容を設定します。ダイアログを表示させるにはBODY内にフォー
ムを用意します。
URLText.htm( 154 )
<form name="form1" >
    テキスト中に含まれるURLにリンクを設定します。</p>
  ターゲット: 
  <select name=" target">
    <option value="" selected>なし</option>
    <option value="_blank" >_blank</option>
    <option value="_parent" >_parent</option>
    <option value="_self" >_self</option>
    <option value="_top" >_top</option>
    <option>*** メニューのロード中... ******</option>
  </select>
</form>

これでコマンドを呼び出すとダイアログが表示されます。

ダイアログ表示後に入力項目をあらかじめ設定する場合があります。この場合はBODY
にonloadを設定します。URLText.htmもonload時にメニュー項目の追加を設定して
います。
URLText.htm( 153 )
<body onload="Init()">

ダイアログが表示されコマンドを実行するのに必要な設定が終わり、ボタンを押し
ます。commandButtonsで設定した関数が呼び出されます。
この関数内に実際に行うコマンド処理を記述します。

URLText.htm( 33 )
function TextURL()
この関数内で、HTMLファイル内にあるURLを検索しリンクを設定を行っています。
コマンドからHTMLファイルの情報を取得するには、DOM(Document Object Model)を
使います。詳しいDOMについてはW3Cを参照してください。( http://www.w3c.org/ )
	var doc = dw.getDocumentDOM();
でDOMを取得し、
unction URLText( doc, regString, addString )
でファイル内を検索しています。ここのポイントはテキスト検索し、見つかった部分
がどのタグに属しているか調べている部分です。

URLText.htm( 69 )
index = inStr.indexOf( outStr[ i ] );	// 検索位置の取得
length = outStr[ i ].length;			// 長さの取得

// 選択した範囲がどのタグに属してるか調べるためにDOMを取得
obj = doc.offsetsToNode( old + index, old + index + length );

この後にDOMを利用してリンクを設定しています。JavaScriptで行った変更がそのま
ま反映されます。

コマンドの説明は以上です。
要点は 
function commandButtons()でボタン設定
FORMを作成しダイアログ表示
ボタンを押してコマンド処理
です。

今回はダイアログが必要な場合でしたが、ダイアログが必要のない場合はbodyの
onload時にコマンド処理を行う関数を設定して下さい。これでコマンド実行されま
す。


◆すみません
===========================================================================
適当な解説になってしまって申し訳ありません。反省しているならきっちと書けよ
って感じなのですが、最近いろいろと忙しくメルマガにかける時間がありません。
次号からは自分で作ったコマンド等の解説になるので、あまり時間をかけなくても
いいのでわかりやすく書けると思っています。カスタマイズはこれで終わりますが、
カスタマイズに関する質問は受け付けているので疑問に感じたことがあればメール
を下さい。メルマガ上で紹介できるものでしたら回答します。
次号の発行予定は、4月3日です。


◆あとがき
===========================================================================
仕事は3月で会社を退社し、4月から今まで趣味だったWebの仕事を本格的にするこ
とになりました。つい1ヶ月前に長男誕生したばかりなのによくやるなぁと自分で
思ってます。年もまだ23なのに。(^^;


==========================================================================

                        Dreamweaver Programming

    発行、編集: 植木 友浩 
    登録、解除: http://www2s.biglobe.ne.jp/~tomoChan/dreamweaver/mail/

          注意: 記載された情報は各人の責任においてご利用ください。
                 この記事により生じるいかなる損害についても責任は
                 負いかねますのでご了承ください。

                     Copyright(C) 2000. Tomohiro Ueki. All rights reserved.
===============================================[ Magazine ID: 0000021775 ]=

                                                                 Thank you!
---------------------------------------------------------------------------
このメールマガジンは、インターネットの本屋さん『まぐまぐ』を利用して
発行しています。( http://www.mag2.com/ )
--------------------------------------------------------------------------- 


TOP > Dreamweaver> メールマガジン > コマンド