zoukankan      html  css  js  c++  java
  • html a标签包含a标签,浏览器的行为处理

    a标签包含a标签
    浏览器可能是为了避免a的转跳重复,所以禁止了a标签包含a标签,如何你的代码中有a标签包含a标签,那么浏览器将会重新编码外层a标签,取外层a标签与内层a标签的差集,加上外层a标签,并把外层a标签去掉。这样就会破坏我们的html结构。
    因此我编码的时候一定要避免a标签包含a标签

    我这次重构代码的时候遇到了这样的代码,但是html结构我并不想修改他的。
    我思路是:
    一、用div对外层a标签进行模拟
    二、用div对内层a标签进行模拟
    模拟用的div用点击事件截获,最后创建a标签执行a标签的默认方法

    // 这是我对外层a标签进行模拟用的代码
    function div_a_click(e){
    	var target_elem = e.target || e.srcElement;
    	var a_tag_RegExp = /[^http://|^https://][sS]*/;
    	while(!(target_elem === this || target_elem.tagName == 'BODY')){
    		if (target_elem.tagName == 'A' && a_tag_RegExp.test(target_elem.href)) {
    			return;
    		}
    		target_elem = target_elem.parentNode;
    	}
    	var a = document.createElement('a');
    	a.href = this.getAttribute('href');
    	a.target = target_elem.getAttribute('target');
    	target_elem.parentNode.appendChild(a);
    	a.click();
    	target_elem.parentNode.removeChild(a);
    }
    
  • 相关阅读:
    调用Config.ini类
    winform用AForge拍照功能
    winform导出csv
    winform导出excel
    net里面using的使用
    DBNULL与null的区别
    mui app在线更新
    redux-thunk初步使用
    初步使用Web Notification 实现浏览器消息通知
    ios唤起键盘后,页面不收回导致元素错位的问题.(譬如固定在底部的自定义键盘等)
  • 原文地址:https://www.cnblogs.com/Silababy/p/6068543.html
Copyright © 2011-2022 走看看