繁体   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