7

ユーザーがマウスを使用して<img>強調表示したかのように強調表示したい HTML ドキュメントがあります。JavaScriptを使用してそれを行う方法はありますか?

Mozilla で動作するために必要なだけですが、ありとあらゆる情報を歓迎します。

編集: 画像を選択する理由は、実際には強調表示するためではなく、選択した画像を XPCOM を使用してクリップボードにコピーできるようにするためです。したがって、これを機能させるには、実際に img を選択する必要があります。

4

7 に答える 7

12

ページの最初の画像を選択する例を次に示します (Firebug でこのページをテストすると、Stack Overflow のロゴになります)。

var s = window.getSelection()
var r = document.createRange();
r.selectNode(document.images[0]);
s.addRange(r)

関連ドキュメント:

于 2008-09-24T01:42:34.067 に答える
1

s.addRange(r) の前に s.removeAllRanges() を呼び出すこともできます。

于 2009-10-09T19:41:10.933 に答える
0

正確には、何をしようとしているのですか?XPCOM を使用している場合は、アプリケーションまたはその拡張機能を作成していると思われます。画像データを取得して直接クリップボードに置くことはできませんか?

于 2008-09-24T01:42:51.540 に答える
0

要素を選択するための私の個人的な選択は jquery です。

次に、選択した要素を取得するには:

$("img#YOURIMAGEHER​​E").focus();

于 2008-09-24T01:46:28.253 に答える
-1

img.src = "otherimage.png";のように、画像のソースを入れ替えることができます。

私は実際にこれをある時点で行いましたが、画像をプリロードするためにできることがあります。

swap-image = "otherimage.png"などの画像要素に特別な属性を設定し、それを含む要素を検索し、画像を自動的に交換するハンドラーを設定しました...あなたはいくつかの楽しいことをすることができます。


申し訳ありませんが、質問を誤解しました。しかしとにかく、私が話していることを行うことに興味がある人のために、ここに私が意味する例があります(粗雑な実装、それを改善するためにjQueryのようなフレームワークを使用することをお勧めしますが、あなたを動かすための何かです):

<html>
<body>
<script language="javascript">
function swap(name) {
  document.getElementById("image").src = name;
}
</script>
<img id="image" src="test1.png"
     onmouseover="javascript:swap('test0.png');"
     onmouseout="javascript:swap('test1.png');">
</body>
</html>
于 2008-09-24T01:21:42.243 に答える
-1

「highLight」ソリューションの基本的な考え方は問題ありませんが、img に「静的な」境界線スタイル (css で定義) を、highLight メソッドで指定されたものと同じ寸法で設定したいので、そうではありません。リサイズを引き起こします。

さらに、呼び出しを「highLight(this)」に変更し、関数 def を「highLight(obj)」に変更すると、「document.getElementById()」呼び出し (および"img" の "id" 属性)、代わりに "obj.style.border" を実行する限り。

おそらく、「highLight」のスペルも正しくする必要があります。

于 2008-09-24T01:39:12.140 に答える
-2

imgタグにIDを付けます。document.getElementById('id')を使用します。

<script type="text/javascript" language="javascript">
function highLight()
{
  var img = document.getElementById('myImage');
  img.style.border = "inset 2px black";
}
</script>
<img src="whatever.gif" id="myImage" onclick="hightLight()" />

編集::フォーカスを与えるために.focusを試してみてください。

于 2008-09-24T01:30:42.550 に答える