我花了几个小时来追踪这个问题,我对我所看到的感到有点震惊。
这是代码:
<!DOCTYPE html>
<html>
<head>
<title>Example</title>
<style>
a:after {
content: attr(data-content);
}
</style>
</head>
<body>
<a id="targetElement" href="http://www.google.com">Hello World</a>
</body>
<script type="text/javascript">
document.getElementById("targetElement").setAttribute("data-content", "moo");
</script>
</html>
上面的示例在 IE8 中可以正常工作。查看时,单词 'moo' 被附加到 targetElement 的末尾:
现在,让我们通过 CDN 引用 jQuery 来增加一些趣味。添加以下代码行:
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery/jquery-1.8.3.min.js"></script>
这样整个例子就变成了:
<!DOCTYPE html>
<html>
<head>
<title>Example</title>
<style>
a:after {
content: attr(data-content);
}
</style>
</head>
<body>
<a id="targetElement" href="http://www.google.com">Hello World</a>
</body>
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery/jquery-1.8.3.min.js"></script>
<script type="text/javascript">
document.getElementById("targetElement").setAttribute("data-content", "moo");
</script>
</html>
刷新 IE8 并观察 moo 这个词已被删除,但该元素保留了它的 data-content 属性:
我……我不明白。我认为 jQuery 应该可以帮助我解决跨浏览器的兼容性问题……但在这里它是破坏商店。
关于如何解决这个问题的任何想法?还是解决问题?