js中重写a标签的href属性和onclick事件
来源:互联网 发布:java base64解码图片 编辑:程序博客网 时间:2024/05/15 23:47
在某些场景下,我们需要对HTML的标签进行重写。这里介绍如何重写a标签的href属性和onclick事件,重写后,每当点击a标签对象都会调用自己重写的方法。
html代码:
<html><title>重写a标签单击事件和href属性</title><head><script src="https://code.jquery.com/jquery-3.2.1.min.js"></script><script src="rewrite_a.js"></script><script type="text/javascript">function abc(){alert("abc方法的单击事件执行了");}function def(){alert("def方法的单击事件执行了");}</script></head><body><a href="http://www.baidu.com">跳转百度</a><a onclick="abc();">点击弹框</a><a href="http://www.sina.com.cn" onclick="def();">两个都有</a></body></html>js代码:
var _event_list = {};$(function(){// 找到页面上所有的a标签var links = $(document).find("a");// 循环数组,拿到每一个a标签for(var index in links) {// 保存click属性的值var _click = links.eq(index).attr("onclick");// 保存href属性的值var _href = links.eq(index).attr("href");if( _click != null) {// 给onclick属性重新设值links.eq(index).attr("onclick","eval_a_click_event('a"+index+"')");}if(_href != null) {// 给href属性重新设值links.eq(index).attr("href","javascript:eval_a_href_event('a"+index+"')");}_event_list["a"+index] = [links.eq(index),_href,_click];}})function eval_a_click_event(id) {var link = _event_list[id];if(link != null && link[2] != null) {// 拿到单击事件的方法alert(link[2]);// 执行单击事件eval(link[2]);}}function eval_a_href_event(id) {var link = _event_list[id];if(link != null && link[1] != null) {// 拿到href属性的值alert(link[1]);// 将href属性值重新赋回原来的值link[0].attr("href",link[1]);// 移除单击事件link[0].removeAttr("onclick");// 模拟单击事件link[0][0].click();// 重写href属性的值link[0].attr("href","javascript:eval_a_href_event('"+id+"')");// 如果有单击事件,重新加上if(link[2] != null) {link[0].attr("onclick",link[2]);}}}
以上只是模拟a标签在本页面跳转到新页面。如果a标签的target属性被设置,则需要按照场景重新书写逻辑,大家根据我的代码举一反三吧。
如有错误,请及时指正,感谢!
0 0
- js中重写a标签的href属性和onclick事件
- a标签的onclick事件和href属性使用
- <a>标签中href属性动作和onclick事件的区别以及传递this参数对象
- <a>标签的href和onclick属性
- <a>标签的href和onclick属性
- <a>标签的href和onclick属性
- <a>标签的href和onclick属性
- <a>标签的href和onclick属性
- <a>标签的href和onclick属性
- <a>标签的href和onclick属性
- <a>标签的href和onclick属性
- <a>标签的href和onclick属性
- <a>标签的href和onclick属性
- <a>标签的href和onclick属性
- <a>标签的href和onclick属性
- <a>标签href属性与onclick事件
- asp.net 中 a标签中href=“#”属性和 onclick()事件详解
- a标签的href属性和onclick属性的区别
- A1086. Tree Traversals Again
- Java多线程/并发11、线程同步通信:notify、wait
- SQL优化
- bind开启log
- text函数
- js中重写a标签的href属性和onclick事件
- Codeforces 612E
- poj 2388 Quick_sort 求中间值
- LeetCode2.Add Two Numbers
- 串口驱动程序设计详解---串口初始化(上)
- 西门子plc s7 200数据长度和数值范围及格式
- Kinetis KL8x 使用eDMA模块接收串口数据
- Jsp向Action中传集合
- eclipse安装JBoss Tools插件(必须是最新版的eclipse,否则参考第二种安装)