2012年04月09日


ブラウザ拡張の中で一番簡単な IE 拡張 : カーソル下の画像用HTMLの取得



ブラウザの拡張は、今表示しているコンテンツの情報を効率良く利用しようというところ
からたいてい始まります。Google Chrome 拡張作成入門 でも、表示している画像の URL
から HTML のコードを取得しましたが、IE 拡張でも当然可能です。

インストールは少し面倒ですが、いったんインストールしてしまえば修正やデバッグもすぐ
に反映されますし、Google Chrome よりかなり簡単に表示しているページを加工する事が
可能です。

ただ、詳細なドキュメントを探すのに苦労する事と、今までいろいろ変遷があって、なかなか
解りづらい問題がたくさんあって、あまり一般的には使われていないのが現実です。例えば、
数年前までは、そのページの URL を操作するのに、location オブジェクトが使えたのですが、
今では、document オブジェクトの URL プロパティを使用するようになっています。

get_img_html.htm
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=SHIFT_JIS">
<title>カーソル下の画像用HTMLの取得</title>
<script language="JavaScript">

	var RegName,strLocation,obj;

	RegName = "=> カーソル下の画像用HTMLの取得";

	// ここでは使用しませんが、URL は document 経由で利用する必要があります
	strLocation = external.menuArguments.document.URL;

	// SHIFTとCTRLとALT用変数
	var keyflg1,keyflg2,keyflg3;
	keyflg1 = false;	// SHIFT
	keyflg2 = false;	// CTL
	keyflg3 = false;	// ALT

	// 対象となるオブジェクト( ここでは画像 )
	obj = external.menuArguments.event.srcElement;

// *********************************************************
// アンインストール
// *********************************************************
function uninstall() {

	var WshShell = new ActiveXObject("WScript.Shell");

	if ( confirm("アンインストールしてよろしいですか?   ") ) {
		try {
			WshShell.RegDelete( "HKCU\\Software\\Microsoft\\Internet Explorer\\MenuExt\\" + RegName + "\\" );
		}
		catch(e){
			alert("アンインストールが失敗しました   ");
		}
		return true;
	}
	else {
		return false;
	}

}
</script>
</head>
<body>
<!--SHIFTとCTRLが押されているかどうかを取得するボタン-->
<input id="btn" type=button onClick='keyflg1=window.event.shiftKey;keyflg2=window.event.ctrlKey;keyflg3=window.event.altKey;'>
</body>
</html>
<script language="JavaScript">

	// ボタンの呼び出し
	document.getElementById("btn").click();

	var str;

	try {
		// *************************************************
		// 画像専用処理( レジストリ 0x2 )
		// *************************************************
		if ( keyflg1 && keyflg2 && keyflg3 ) {
			if ( uninstall() ) {
				str = "アンインストールを実行しましたので、IE を再起動して下さい   ";
			}
			else {
				str = "アンインストールをキャンセルしました   ";
			}
		}
		else {
			str = '<img src="' + obj.src + '"';
			str += ' style="border: solid 0px #000000" />';

			// クリップボードにセット
			window.clipboardData.setData("Text",str);

		}
	}
	catch(e){
		str = "処理できませんでした   ";
	}

	alert(str)

</script>

このコードを get_img_html.htm として SHIFT_JIS で保存して好きなフォルダへ保存し、
レジストリエディタで登録するだけで利用可能になります。

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\=> カーソル下の画像用HTMLの取得]
@="C:\\laylaClass\\menuex\\get_img_html.htm"
"Contexts"=dword:00000002

00000002 は、画像が対象である事を示しています

アンインストール

ALT キーを押してから、SHIFT と CTRL を押して、3つ同時に押している状態で右クリックして
メニューを選択すると、アンインストール処理が実行されて、レジストリよりエントリが削除
されます( get_img_html.htm は削除されません )

メニューのタイトルについて

MenuExt の下に作成するキーがそのままタイトルになるのですが、順序は文字順になるので、
任意の記号を使って使いやすい順序にカスタマイズすればいいと思います。( 但し、その場合
は、アンインストール用の文字列も変更する必要があります )

関連する記事

Twitter用埋め込みコードを取得する IE拡張
Seesaa の記事カテゴリをソートする IE 拡張
IE拡張メニュー : Seesaa のリンクコンテンツを一瞬でソートする


posted by at 2012-04-09 19:04 | Comment(0) | IE拡張 | このブログの読者になる | 更新情報をチェックする
SQLの窓全体の検索
Loading
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。