[英]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 YOURIMAGEHERE”)專注()。
您可以交換圖像的來源,如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.