IE の右クリックで HTML 内の情報を取得(クリップポードにコピー) :【IE拡張メニュー】


ブラウザでダウンロード

IE の仕様を利用したツール
Microsoft のドキュメントは こちら を参照して下さい。

IE で右クリックしたポップアップメニューから選択可能なユーザーイベントは、
レジストリに登録された情報に連動して、VBScript または、JavaScript の
アプリケーションを起動する事ができます( HTA と同等なので、レジストリの処理等可能です )



ShowModalDialog で表示される Window を使ってユーザ画面を作成する事も可能です。
( このツールの menuex_body.vbs : メニュー名は「−★★BODY」 )


menuex_body.vbs
<SCRIPT language="VBScript">

	' *************************************************
	' ウインドウサイズ
	' *************************************************
	window.dialogWidth = "800px"
	window.dialogHeight = "600px"

</SCRIPT>
<html>
<head>
<title>BODYの内容 ( クリップボードにコピー済みです )</title>
<meta http-equiv="content-type" content="text/html; charset=SHIFT_JIS">
<STYLE type="text/css">
* {
	font-size:12px;
}
body {
	margin:0;
}
textarea {
	margin-left:4px;
	margin-top:24px;
	width:788px;
	height:548px;
}
</STYLE>
</head>
<BODY>
<TEXTAREA wrap="off" id="result">
</TEXTAREA>


<SCRIPT language="VBScript">
' *************************************************
' ● BODY の内容全て
' *************************************************

	Dim obj,str

	on error resume next
	' *************************************************
	' カーソル下のオブジェクト
	' *************************************************
	Set obj = external.menuArguments.event.srcElement
	str = obj.document.body.innerHTML
	if Err.Number <> 0 then
		str = "BODY を取得できませんでした"
	end if
	on error goto 0

	' テキストとして文字列セット
	document.getElementById("result").innerText = str

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

</SCRIPT>
</BODY>
</html>


WEB HTML作成用情報取得ツールとして使用
リンクの URL や、テキストは、IE 上でカーソルを置き、クリックして実行する
かわりに、右クリックしてメニューを選択する事によってクリップボードにコピーされます。

同時に両方を取得するメニューも用意していますので、貼り付けるほうのプログラム
で分解して使用します( 区切り文字は 0x1a )
menuex_url_text.js
<SCRIPT language="JavaScript">
// *************************************************
// 他のプログラム用に、URL と テキストを同時取得
// ( 0x1a で区切る )
// *************************************************

	try {
		// *************************************************
		// カーソル下のオブジェクト
		// *************************************************
		var obj = external.menuArguments.event.srcElement;
		var str = obj.tagName;

		// *************************************************
		// アンカー専用処理( レジストリ 0x20 )
		// *************************************************
		if ( str.toUpperCase() == 'A' ) {
			str = external.menuArguments.event.srcElement.href;

			var strText = obj.firstChild.nodeValue;
			reg = new RegExp(String.fromCharCode(160),"g");
			strText = strText.replace(reg,' ');
			// 後でプログラムで確実に分解できるように 0x1a で区切る
			window.clipboardData.setData("Text",
				str+String.fromCharCode(0x1a)+strText
			);
			// 表示用
			str = str + "\n" + strText
		}
	}
	catch(e) {
		str = external.menuArguments.location.href;
	}
	alert(str);

</SCRIPT>
画像用のメニューでは、取得した URL を加工して HTML 上に貼り付ける為の
ユーザカスタマイズが可能になっています。

メニューの名前毎にレジストリ登録が必要になりますが、いずれも menuex_image_html.vbs を
使用して、Html エントリの内容を変更するだけです。( $URL を置き換えます )
JavaScript に精通しておれば、目の前に表示されている IE の内部の情報を使用して
Microsoft の VBScript または、JavaScript で可能な事は全て実装可能です。

とにかく、WEB 上の HTML 作業は煩雑で力仕事が多いですが、少しでも楽になる為の
ツールとして、少し頑張れば誰でも自由にカスタマイズできます。