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>
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()))