IE 拡張メニューインストーラ 【TEXTAREA 用アンカー(画像)HTML作成】

テキストエリアの機能拡張をするスケルトンです。
このサンプルでは、クリップボードにある 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>