JS给页面标签添加事件(或超链接链接)

    先说一个要求,大家知道一个新闻的详细页里面,有很多的文字和图片,新闻信息一般都是采用文本编辑器录入发布的,比如插入图片就及时显示,但是插入图片显示出来的一般是<img src='xxx.jpg' border=0 width=xxx height=xxx /> 并没有超链接的,严格说来在详细页面再给图片加个超链接必要性不是很大,因为一般详细也显示的图片基本上就和原图一样了,不必非要能点下图片在弹出一个新窗口,新窗口里又显示一个一模一样的图片,有时候也可能由于详细页面显示的图片和原图的尺寸有些出入,弹出个新窗口显示其完全大小的图片也合理,更多的情况是新闻信息显示的图片和原图是一样的了,如果客户非要怎么搞呢,那就搞了。。。当然不是去修改编辑器,那看得头疼的。。。

     在新闻信息页面添加一段JS是可以做到的,先找到内容区域的所有IMG标签,然给标签添加事件,相当于仿了一个超链接,主要用到attachEvent方法为元素动态添加onclick事件,如下:

<script type="text/javascript">
var a = document.getElementsByTagName("IMG");//找出所有的IMG标签 测试
//
var s = document.getElementById("DivContent");
//
var a = s.getElementsByTagName("IMG");//找出DivContent区域内所有的IMG标签
  function addClick()
  {
      
for(i=0;i<a.length;i++)
      {   
          a[i].attachEvent(
"onclick"new Function("method("+i.toString()+");")); 
          a[i].style.cursor 
= "pointer"
          a[i].alt 
= "点我"
      }
  }
  
function method(p)
  { 
    window.open(a[p].src);  
  }
  addClick();
</script>

要注意的是attachEvent里的方法如果带有参数的话,不能这样a[i].attachEvent("onclick", function(){method(i.toString());}) 或 a[i].attachEvent("onclick", method(i.toString())) 

原文地址:https://www.cnblogs.com/peaceli/p/1364985.html