Necesito eliminar todas las definiciones de estilo en una página usando javascript, para obtener el mismo resultado que haciendo View > Page Style > No Style
en Firefox. ¿Cuál es la manera más simple?forma más sencilla de eliminar todos los estilos en una página
8
A
Respuesta
13
Puede recursiva iterar través de todos los elementos y quitar el atributo 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);
Para quitar las hojas de estilo vinculadas puede, además, usar el siguiente fragmento:
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);
}
8
Si tiene jQuery, es probable que pueda hacer algo como
$('link[rel="stylesheet"], style').remove();
$('*').removeAttr('style');
1
Usando ES6 Array.from
Array.from(document.querySelectorAll('link[rel="stylesheet"], style'))
.forEach(elem => elem.parentNode.removeChild(elem));
1
Aquí es la bondad ES6 se puede hacer con una sola línea.
1) Para eliminar todos los estilos en línea (por ejemplo: style="widh:100px"
)
Array.from(document.querySelectorAll('[style]'))
.forEach(el => el.removeAttribute('style'));
2) Para eliminar el enlace de estilo externa (por ejemplo: <link rel="stylesheet"
)
Array.from(document.querySelectorAll('link[rel="stylesheet"]'))
.forEach(el => el.parentNode.removeChild(el));
3) Para eliminar todas las etiquetas de estilo en línea (por ejemplo: <style></style>
)
Array.from(document.querySelectorAll('style'))
.forEach(el => el.parentNode.removeChild(el));
Cuestiones relacionadas
- 1. ¿Una forma más sencilla de verificar los parámetros?
- 2. PHP: forma más sencilla de eliminar una carpeta (incluido su contenido)
- 3. Forma más sencilla de cargar html correctamente desde la página web en una cadena en Java
- 4. Forma más sencilla de implementar archivos PDF en Tridion 2011
- 5. forma más sencilla de analizar una fecha en Javascript
- 6. Forma más sencilla de crear un HWND
- 7. forma más sencilla de insertar Perl en html
- 8. ¿Cuál es la forma más fácil de eliminar todos los atributos de un XML en C#?
- 9. forma más sencilla de repetir un video en un MediaElement
- 10. ¿Forma más sencilla de publicar en Zeroconf/Bonjour?
- 11. forma más sencilla de comprobar si hay espacios en ruby
- 12. ¿Forma más sencilla de agregar la cookie/variable XDEBUG_SESSION_START?
- 13. Python: la forma más sencilla de eliminar texto de la lista de URL usando BeautifulSoup
- 14. ¿Cuál es la forma más sencilla de extender una matriz numpy en 2 dimensiones?
- 15. forma más sencilla de consulta XML en Java
- 16. ¿Cuál es la forma más sencilla de crear una ventana con forma en wxPython?
- 17. WPF: ¿Cómo descarto todos los estilos heredados?
- 18. Symfony2: forma más sencilla de obtener las direcciones URL REST
- 19. Cómo orientar todos los controles (Estilos WPF)
- 20. ¿Cómo eliminar todos los estilos heredados y calculados de un elemento?
- 21. ¿Cómo puedo capturar todos los estilos de CSS del elemento?
- 22. eliminar todos los objetos de una uiview?
- 23. forma más sencilla de gráficos 3D superficie dada puntos 3d
- 24. Eliminar todos los elementos de una lista
- 25. ¿Hay alguna forma más sencilla de hacer esto?
- 26. Git: forma más sencilla de aplastar compromete el maestro
- 27. Eliminar el color/las imágenes de fondo de todos los elementos con jQuery
- 28. Eliminar todos los nodos en jsTree
- 29. Buscar todos los estilos CSS utilizados en el sitio web
- 30. Forma más sencilla para enviar mensajes cortos utilizando TCP/IP
Esto eliminará los estilos aplicados directamente a los elementos, pero no afectará a CSS. –
@kennis Gracias por señalar eso, acabo de enmendar mi respuesta ... – xandercoded
Su código parece prometedor. De todos modos, tengo que ejecutar el segundo fragmento dos veces para que tenga efecto. ¿Por qué? P.S .: .toLowerCase() – tic