テキストエリアの機能拡張をするスケルトンです。 このサンプルでは、クリップボードにある url を使って、選択したテキストを A タグを使った HTML に置き換えます。 一度レジストリにインストールしてしまえば、内容の変更は text_anchor.wsf 内 の JavaScript を変更して再インストールして実行テストするという、簡単なものです。 JavaScript さえ書ければ、いくらでも自分のツールが作成できますし、 書けなくても、文字列部分の変更はできますから、応用は可能です。 ブラウザでダウンロード( winofsql.jp を信頼していただけるなら、そのまま実行して使えます ) このリンクはアンインストーラです ブログの入力システムによくある機能ではありますが・・・まともにカスタマイズできるものを見た事無いですし、時間がかかったり して自分でタイプしたほうが早い場合さえあります。 このインストーラを駆使すれば、相当な機能を実装できます。 このサンプルでは、テキストを選択すればアンカーですが、なにも選択しないで実行すると、 クリップボードの URL で img タグを作成します インストール場所は、通常 C:\Program Files\laylaClass\menuex です。 C:\Program Files の部分は環境によって変わる可能性があります インストールソースコード******** ●ここを変更● ******** の部分を変更すると、 オリジナルが作成できます <JOB> <COMMENT> ************************************************************ IE 拡張メニューインストーラ ■TEXTAREA 用アンカー(画像)HTML作成 ■著作権その他 このプログラムはフリーです。どうぞ自由に御使用ください。 著作権は作者である私(lightbox)が保有しています。 また、本ソフトを運用した結果については、作者は一切責任を 負えせんのでご了承ください。 ************************************************************ </COMMENT> <SCRIPT language="VBScript" src="http://homepage2.nifty.com/lightbox/laylaClass.vbs"> </SCRIPT> <SCRIPT language=VBScript> ' *********************************************************** ' 処理開始 ' *********************************************************** Call laylaFunctionTarget( "http://homepage2.nifty.com/lightbox/" ) Call laylaLoadFunction( "baseFunction.vbs" ) ' Csript.exe で実行を強制 Crun print "【TEXTAREA 用アンカー(画像)HTML作成】をインストールします" if not OkCancel( "インストールしてもよろしいですか?" ) then Wscript.Quit end if ' ファイルシステムオブジェクト作成 GetFso strInstallPath1 = ProgDir() & "\laylaClass" strInstallPath2 = ProgDir() & "\laylaClass\menuex" ' ******** ●ここを変更● ******** strInstallPath3 = ProgDir() & "\laylaClass\menuex\menuex_text_anchor.js" on error resume next Call Fso.CreateFolder( strInstallPath1 ) Call Fso.CreateFolder( strInstallPath2 ) on error goto 0 ' ******** ●ここを変更● ******** Call PutTextFile( strInstallPath3, GetInline("menuex_text_anchor") ) ' レジストリ処理用オブジェクト作成 GetWshShell on error resume next ' ******** ●ここを変更● ******** WshShell.RegWrite _ "HKCU\Software\Microsoft\Internet Explorer\MenuExt\−◎アンカーHTML作成\", _ strInstallPath3, _ "REG_SZ" ' ******** ●ここを変更● ******** WshShell.RegWrite _ "HKCU\Software\Microsoft\Internet Explorer\MenuExt\−◎アンカーHTML作成\Contexts", _ &H3f, _ "REG_DWORD" on error goto 0 print "処理が終了しました" print "" Wscript.Quit </SCRIPT> <COMMENT> ******** ●ここを変更● ******** </COMMENT> <RESOURCE id="menuex_text_anchor"> <![CDATA[ <meta http-equiv="content-type" content="text/html; charset=SHIFT_JIS"> <SCRIPT language="JavaScript"> // ************************************************* // 選択した文字列をクリップボードの URL // でアンカーに置き換える // ※ レジストリはメンテが面倒なので使用しません // ※ アンカーの属性はここで変更します // ************************************************* try { // ************************************************* // カーソル下のオブジェクト // ************************************************* var obj = external.menuArguments.event.srcElement; var str = obj.tagName; // ************************************************* // 全て対象( レジストリ 0x3f ) // ************************************************* if ( str.toUpperCase() == 'TEXTAREA' ) { var doc = external.menuArguments.document; var objTextArea = doc.selection; var objTextRange = objTextArea.createRange( ); str = objTextRange.text; var strClip = window.clipboardData.getData("Text"); // 文字列があれば、アンカー作成 if ( str != "" ) { var stra = "<" + "a href=\"" + strClip + "\""; stra += " target=\"_blank\""; stra += ">" + str + "<" + "/a>"; } // 文字列がなければ、画像作成 else { var stra = "<" + "img src=\"" + strClip + "\""; stra += " border=\"0\""; stra += " galleryimg=\"no\""; stra += " style='border-color:#000000'"; stra += " /" + ">"; } objTextRange.text = stra; } } catch(e) { // このページの URL str = external.menuArguments.location.href; } // alert(str); </SCRIPT> ]]> </RESOURCE> </JOB> |