2008-09-24 22 views
7

我在HTML文檔中有一個<img>,我想突出顯示用戶使用鼠標突出顯示它。有沒有辦法做到這一點使用JavaScript?如何使用JavaScript以編程方式選擇<img>元素?

我只需要它在Mozilla中工作,但歡迎任何和所有信息。

編輯:我想選擇圖像的原因實際上並不是因此它顯示爲高亮顯示,但是我可以使用XPCOM將選定的圖像複製到剪貼板。所以img實際上必須被選中才能工作。

回答

12

下面是其在頁面上選擇第一圖像(這將是堆棧溢出的標誌,如果你測試一下這個頁面在Firebug的)一個例子:

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

相關文章:

+0

完美。這正是我要找的。 – 2008-09-24 01:48:08

-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> 
+0

謝謝,邁克。我應該更具體地說明我想要做什麼。圖像不能突出顯示。它必須被強調。 – 2008-09-24 01:29:34

+0

不,不是你的錯,我誤讀了一些單詞......對不起! – 2008-09-24 01:51:00

-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給它焦點。

-1

「highLight」解決方案的基本思想是可以的,但是您可能希望爲img設置一個「static」邊框樣式(在css中定義),其尺寸與highLight方法中指定的尺寸相同它不會導致調整大小。另外,我相信如果你將調用改爲「highLight(this)」,將函數def改爲「highLight(obj)」,那麼你可以跳過「document.getElementById()」調用(和「img」的「id」屬性的規範),只要你改爲「obj.style.border」即可。

您可能還需要正確拼寫「highLight」。

0

你究竟想要做什麼?如果你使用的是XPCOM,你可能會寫一個應用程序或一個擴展;你不能直接獲取圖像數據並直接放在剪貼板上嗎?

0

我選擇元素個人的選擇是jQuery的:

然後讓你選擇的元素是:

$( 「#IMG YOURIMAGEHER​​E」)專注();

1

您可能還想在s.addRange(r)之前調用s.removeAllRanges()。

相關問題