Innova Content Builder中为img元素添加href链接功能不生效求助
问题修复方案
代码核心问题是DOM节点操作逻辑错误:你试图将新创建的
<a>元素作为子元素插入到<img>标签内部,而<img>是HTML空元素,本身不支持包含任何子节点,因此appendChild操作无法生效。
要实现<img>外层包裹<a>标签的需求,需要先把<a>标签插入到<img>的同级位置,再将<img>移动到<a>标签内部即可,修正后的代码如下:
// 原有img属性设置逻辑保留 parent.document.getElementById('img-" . $count . "').setAttribute('src','" . $urlpath . $image . "'); parent.document.getElementById('img-" . $count . "').setAttribute('alt','".$image."'); // 包裹a标签的正确逻辑 var targetImg = parent.document.getElementById('img-" . $count . "'); var myLink = document.createElement('a'); myLink.setAttribute('href','http://www.google.fr'); // 将a标签插入到img节点的同级前方 targetImg.parentNode.insertBefore(myLink, targetImg); // 将原有img节点移动到a标签内部 myLink.appendChild(targetImg);
注:该操作仅移动DOM节点位置,不会丢失原有img节点绑定的事件监听器。
内容的提问来源于stack exchange,提问作者François Macchi
相关产品推荐
相关产品推荐

