1

我想说

<html>
<body>
<mytag foo="bar">blah</mytag>
</body>
</html>

并在其他地方定义 a<mytag>应该如何表现。但是对于不能很好地使用自定义标签的旧浏览器,我想在浏览器中加载一个 js 库并让它自动重写上面的代码

<html>
<body>
<div data-mytag data-foo="bar">blah</div>
</body>
</html>

显然,这个功能可以在一个小时内完成,但我更喜欢使用某人编写的小型库,以方便约定和可能方便的功能。你知道一个吗?注意:请不要回复我为什么不应该使用自定义标签。

4

1 回答 1

0

对于第一部分,也许像

<mytag>yo</mytag> 
<script>
var map = {
    MYTAG: function(s){
        // surround content with stars
        return '**'+s+'**';
    }
}
Array.prototype.slice.call(document.getElementsByTagName('*')).forEach(function(tag){ 
    // note on some IE versions you cant set innerHTML directly
    if(map[tag.tagName]) tag.innerHTML = map[tag.tagName](tag.innerHTML);
})
</script>

对于在运行时更改元素标签,我不记得是否可能。人们可能会畏缩,但我可能会使用正则表达式替换整个 document.body.innerHTML 并重置它。如果我知道我是唯一可以处理它的 HTML 内容的创建者..

于 2013-08-03T01:37:36.663 回答