Самый простой способ удалить все стили на странице - PullRequest
10 голосов
/ 13 февраля 2012

Мне нужно удалить все определения стилей на странице, используя javascript, чтобы получить тот же результат, что и View > Page Style > No Style в Firefox.Какой самый простой способ?

Ответы [ 4 ]

18 голосов
/ 13 февраля 2012

Вы можете рекурсивно итерировать через все элементы и удалить атрибут style:

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);

Чтобы удалить связанные таблицы стилей, вы также можете использовать следующий фрагмент:

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);
}
9 голосов
/ 13 февраля 2012

Если у вас есть jQuery, вы, вероятно, можете сделать что-то вроде

$('link[rel="stylesheet"], style').remove();
$('*').removeAttr('style');
4 голосов
/ 16 октября 2017

Вот добродетель ES6, которую вы можете сделать только одной строкой.

1) Чтобы удалить все встроенные стили (например: style="widh:100px")

document.querySelectorAll('[style]')
  .forEach(el => el.removeAttribute('style'));

2) Чтобы удалить ссылку на внешнюю таблицу стилей (например: <link rel="stylesheet")

document.querySelectorAll('link[rel="stylesheet"]')
  .forEach(el => el.parentNode.removeChild(el));

3) Чтобы удалить все теги встроенного стиля (например: <style></style>)

document.querySelectorAll('style')
  .forEach(el => el.parentNode.removeChild(el));
2 голосов
/ 16 февраля 2017

На самом деле, document.querySelectorAll возвращает NodeList, который имеет метод forEach.

document.querySelectorAll('link[rel="stylesheet"], style')
  .forEach(elem => elem.parentNode.removeChild(elem));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...