碰到我没想到的东西.在IE Edge中测试网站,我在控制台中收到错误:
无法设置未定义或空引用的属性“形状”
调试一段时间后,似乎Microsoft Edge无法使用数据集在SVG元素上设置数据属性.我做了一个简化的测试用例:
https://codepen.io/freemagee/pen/YQRowd
Codepen上有一个SVG,然后我尝试使用数据集向它添加一些数据属性.当我在Microsoft Edge中查看codepen时,我收到控制台错误.
Codepen代码段
HTML
<svg version="1.1" id="svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="50px" height="50px" viewBox="0 0 50 50">
<rect id="square" width="50" height="50" stroke="red" stroke-width="2px" fill="transparent" />
</svg>
JS
function setSvgData() {
var svg = document.getElementById('svg');
svg.dataset.shape = 'square';
svg.dataset.emotion = 'gloomy';
}
setSvgData();
读完SVGElement.dataset后,我不确定现在要做什么来解决这个问题.我希望尽可能避免使用setAttribute重写我的所有数据集代码.
有没有人经历过这个或知道如何解决它?
最佳答案 这里有一个问题,状态为“固定,尚未转移”:
https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/8489259/
与此同时,为了向后兼容,使用getAttribute和setAttribute代替数据集似乎是要走的路.