簡體   English   中英

我該如何選擇 <img> 元素以編程方式使用JavaScript?

[英]How can I select an <img> element programmatically using JavaScript?

我在HTML文檔中有一個<img> ,我想強調,好像用戶使用鼠標突出顯示它。 有沒有辦法使用JavaScript?

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

編輯:我想選擇圖像的原因實際上並不是它突出顯示,但我可以使用XPCOM將所選圖像復制到剪貼板。 因此,實際上必須選擇img才能使其正常工作。

這是一個選擇頁面上第一個圖像的例子(如果你在Firebug中的這個頁面上測試它將是Stack Overflow標志):

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

相關文件:

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

你到底想要做什么? 如果您正在使用XPCOM,那么您可能正在編寫一個應用程序或擴展程序; 你不能直接獲取圖像數據並將其放在剪貼板上嗎?

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

然后獲得您選擇的元素是:

$( “#IMG YOURIMAGEHER​​E”)專注()。

您可以交換圖像的來源,如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>

“highLight”解決方案的基本思路是可以的,但您可能希望為img設置一個“靜態”邊框樣式(在css中定義),其尺寸與highLight方法中指定的尺寸相同,因此它不會導致調整大小。

另外,我相信如果您將調用更改為“highLight(this)”,並將函數def更改為“highLight(obj)”,那么您可以跳過“document.getElementById()”調用(以及“img”的“id”屬性,只要你改為“obj.style.border”。

您可能還需要正確拼寫“highLight”。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM