删除页面中所有样式的最简单方法

问题描述:

我需要使用javascript删除页面中的所有样式定义,以获得与执行 View>相同的结果页面样式> Firefox中没有样式。哪种方法最简单?

I need to remove all the style definitions in a page using javascript, to obtain the same result as doing View > Page Style > No Style in Firefox. Which is the simplest way?

您可以 递归迭代 所有元素并删除样式属性:

function removeStyles(el) {
    el.removeAttribute('style');

    if(el.childNodes.length > 0) {
        for(var child in el.childNodes) {
            /* filter element nodes only */
            if(el.childNodes[child].nodeType == 1)
                removeStyles(el.childNodes[child]);
        }
    }
}

removeStyles(document.body);

要删除链接的样式表,您还可以使用以下代码段:

To remove linked stylesheets you can, in addition, use the following snippet:

var stylesheets = document.getElementsByTagName('link'), i, sheet;

for(i in stylesheets) {
    sheet = stylesheets[i];

    if(sheet.getAttribute('type').toLowerCase() == 'text/css')
        sheet.parentNode.removeChild(sheet);
}