2018年02月18日


『カーソル下の画像用HTMLの取得』を行うIE拡張をダイアログを表示して行う

画面定義を表示させます。( レジストリには "Flags"=dword:00000001 が必要です )



ダイアログが表示された時、すでにテキストエリア内のコードはクリップボードにコピーされていますが、内容を変更して再度クリップボードにコピーする事ができます。
get_img_html_clip.htm
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=SHIFT_JIS">
<title>カーソル下の画像用HTMLの取得</title>
<script language="JavaScript">

	// *************************************************
	// ウインドウサイズ
	// *************************************************
	window.dialogWidth = "400px";
	window.dialogHeight = "300px";

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

</script>
</head>
<body style='padding:20px;'>
<textarea id="text" style='width:300px;height:200px;'></textarea>
<br>
<input
	type="button"
	value="クリップボードにコピー"
	onclick='window.clipboardData.setData("Text", document.getElementById("text").value );window.close();'>
</body>
</html>
<script language="JavaScript">

	// カーソル下の HTML
	str = obj.outerHTML;

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

	// テキストエリアにセット
	document.getElementById("text").value = str;

</script>


▼ レジストリ登録用 install.reg
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\=> カーソル下の画像用HTMLの取得とクリップボード]
@="C:\\Users\\lightbox\\AppData\\Roaming\\laylaClass\\menuex\\get_img_html_clip.htm"
"Contexts"=dword:00000002
"Flags"=dword:00000001



▼ レジストリよりアンインストール用 unistall.reg
Windows Registry Editor Version 5.00

[-HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\=> カーソル下の画像用HTMLの取得とクリップボード]



関連する記事

IE拡張を作成する為の基本仕様
ブラウザ拡張の中で一番簡単な IE 拡張 : カーソル下の画像用HTMLの取得


タグ:IE 拡張
posted by at 2018-02-18 01:07 | IE拡張 | このブログの読者になる | 更新情報をチェックする

IE 拡張を作成する為の基本仕様

かなり古い Microsoft のドキュメントに記述されている内容ですが、以下のような内容になります。登録は、レジストリに直接登録しますが、登録時は IE を終了させておいて下さい。変更する場合も IE を終了させる必要があります。

レジストリの登録場所
HKEY_CURRENT_USER
       Software
           Microsoft
               Internet Explorer
                   MenuExt

このキーの下に、メニューに表示させる項目名をキー名としてキーを作成しますこのキー名がメニュー項目としてそのまま表示されます。
HKEY_CURRENT_USER
       Software
           Microsoft
               Internet Explorer
                   MenuExt
                       メニュー名 = c:\myscript.htm

※ c:\myscript.htm は http:// ではじまる URL でもかまいません
レジストリデータ的には、(規定) にセットします

@="http://winofsql.jp/html/get_img_html.htm"
"Contexts"=dword:00000002

Contexts は、右クリックした時のカーソル下のオブジェクトによって拡張メニーを表示するかしないかを決定する値を ビットの論理 OR で指定します。上記例は『画像』のみを対象としています。

(0x1 << CONTEXT_MENU_DEFAULT) (evaluates to 0x1)
(0x1 << CONTEXT_MENU_IMAGE) (evaluates to 0x2)
(0x1 << CONTEXT_MENU_CONTROL) (evaluates to 0x4) 
(0x1 << CONTEXT_MENU_TABLE) (evaluates to 0x8)
(0x1 << CONTEXT_MENU_TEXTSELECT) (evaluates to 0x10)
(0x1 << CONTEXT_MENU_ANCHOR) (evaluates to 0x20)
(0x1 << CONTEXT_MENU_UNKNOWN) (evaluates to 0x40)
※ CONTROL は、入力関連です。

ダイアログ表示オプション

もう 1 つのオプションは DWORD 値の "Flags" です。これは 1 ビットの値 (0x1) で、このビットを設定すると、スクリプトは ShowModalDialog を使って呼び出されます。これにより、スクリプトをロードしたウィンドウは隠されず、自動的に閉じることもありません。

external.menuArugments の値はメニューを選択した Window オブジェクトを保持したままとなります。

※ external.menuArugments は、そのページの window オブジェクトです。

後発の仕様変更

実行ファイルの拡張子は .htm または .html である必要があります。external.menuArugments は windows オブジェクトですが、現在の
 URL が必要な場合、location オブジェクトを直接操作できないので、document.URL を使用します。


関連する記事

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



posted by at 2018-02-18 00:27 | IE拡張 | このブログの読者になる | 更新情報をチェックする

2018年02月17日


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

インストールは少し面倒ですが、いったんインストールしてしまえば修正やデバッグもすぐに反映されます。

ただ、詳細なドキュメントを探すのに苦労する事と、今までいろいろ変遷があって、なかなか解りづらい問題がたくさんあって、あまり一般的には使われていないのが現実です。例えば、最初のころは、そのページの 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;

</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 {
		str = obj.outerHTML;
		// 独自の構成にする場合等
		// 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:\\Users\\lightbox\\AppData\\Roaming\\laylaClass\\menuex\\get_img_html.htm"
"Contexts"=dword:00000002

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

アンインストール

以下の VBScript をダウンロードして実行して下さい( get_img_html.htm は削除されませんがレジストリからは削除されます )
' 管理者として実行を強制する
Set obj = Wscript.CreateObject("Shell.Application")
if Wscript.Arguments.Count = 0 then
	obj.ShellExecute "wscript.exe", WScript.ScriptFullName & " runas", "", "runas", 1
	Wscript.Quit
end if

Set WshShell = CreateObject( "WScript.Shell" )
WshShell.RegDelete( "HKCU\Software\Microsoft\Internet Explorer\MenuExt\=> カーソル下の画像用HTMLの取得\" )

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

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

関連する記事

Seesaa の記事カテゴリをソートする IE 拡張
IE拡張メニュー : Seesaa のリンクコンテンツを一瞬でソートする


posted by at 2018-02-17 03:10 | IE拡張 | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します