做项目过程中遇到一个需要插入HTML元素标签的功能,然后发现在谷歌浏览器可以正常显示,但是在IE浏览器却没有效果。原来一查才知道IE浏览器不支持element.after(para)方法,经过研究发现,IE虽然不支持.after()方法,但可以支持.appendChild()方法(所有的浏览器都支持该方法)
解决思路:先判断是否为IE浏览器,如果是,则使用appendChild方法,否则使用after方法
var para = document.createElement('img')
//需要使用encodeURI转义,以防IE浏览器打开无法自动转码导致无法请求url
para.src = encodeURI(url + '/upload/get_file?dir=UserSign&date_dir=&file=' + name + '.png')
para.style.position = 'absolute'
para.onload = () => {
if (para.fileSize > 0 || (para.width > 0 || para.height > 0)) {
if (!!window.ActiveXObject || "ActiveXObject" in window){
element.appendChild(para) // IE浏览器使用appendChild,因为不支持.after
}else{
element.after(para) // 谷歌或者其他浏览器
}
}
}