我正在使用CSS attr函数将data- *属性的值动态链接到伪元素的内容:
body::after { content: attr(data-after) }
我随后通过HTMLElement.dataset属性定期更新该数据属性:
setInterval(function () { document.body.dataset.after = new Date; },1000);
我注意到,在Internet Explorer中,虽然所有这些功能都受支持,但伪元素没有更新其内容属性以反映最近的更改.
我已经建立了一个小提琴来展示这个问题.你可以查看它online here.
如何解决这个限制?
解决方法
Internet Explorer现在有一个已知的错误/限制,导致当数据集更新时,不会更新伪元素.一个足够的解决方法是更新旧的(并因此更广泛的支持)setAttribute方法的属性:
setInterval(function () { // Work-around for IE bug: https://stackoverflow.com/q/28031707 document.body.setAttribute( "data-after",new Date ); },1000 );
在内部已经提出了一个针对这个问题的错误,相应的功能团队应该在即将进行的分类中评估这个问题.我们将尽快分配开发周期来解决问题.