とりあえず一番役に立ちそうなコードを実装リンクを右クリックして選択すると URL をクリップボードがら取得できます。 画像の場合は画像の URL が・・・(コードからすると変ですが ) リンクとして成り立っている画像でも、画像が取得されます。 もっと調査が必要かもです。 もうちょっとコードを書いたら、画像の親のアンカーの URL 取得もできると思いますが、 あまり需要は無いのでシンプルな実装です。 IE4 のころからある機能のようですが、ちょっとびっくりしました。 もっと早く知っていたら、楽できたのに。 いろいろまだ、応用アイデアがありますが今日知ったばかりなので時間ありません。 Microsoft のリンクはこちらですが、まあ解りにくい説明です。 何をどう利用したらいいかというヒントがまるでありません。 Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt] [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\URLまたはテキストをクリップボードにコピー] @="C:\\Documents and Settings\\lightbox\\Templates\\menuex.js" "Contexts"=dword:0000003f まあ、オブジェクトに関して良く知っておればこうなると思いますが・・・ C:\Documents and Settings\ユーザー名\Templates\menuex.js
<SCRIPT language="JavaScript"> var obj = external.menuArguments.event.srcElement; var str = obj.tagName; if ( str.toUpperCase() == 'A' || str.toUpperCase() == 'IMG' ) { if ( str.toUpperCase() == 'A' ) { if ( external.menuArguments.event.shiftKey ) { str = obj.firstChild.nodeValue; window.clipboardData.setData("Text",str); } else { str = external.menuArguments.event.srcElement.href; window.clipboardData.setData("Text",str); } } else { str = external.menuArguments.event.srcElement.href; window.clipboardData.setData("Text",str); } } else { if ( str.toUpperCase() != 'BODY' ) { str = obj.innerText; if ( trim(str) == '' ) { str = external.menuArguments.location.href; } window.clipboardData.setData("Text",str); } else { str = external.menuArguments.location.href; window.clipboardData.setData("Text",str); } } alert(str); function trim( strValue ) { var regL = /^[ \s]+/; var regR = /[ \s]+$/; strValue = strValue.replace(regL,""); strValue = strValue.replace(regR,""); return strValue; } </SCRIPT> インターフェイスが結構不思議な仕様で、html で作成しています。 本来この HTML をダイアログとして表示するのですが、デフォルトでは中を非表示で ロードして終了するようです。 Flags=1 というエントリをレジストリに追加するHTMLダイアログ(ShowModalDialog)が開きます。 何に使おうか、ちょっとワクワクします。 実装部である menuex.htm は、ユーザのテンプレートに入れるのが良いでしょう。 ( Shell 関連ではここを使うのがスッキリしますし。) |