如何从页眉中删除样式标签

10
我正在使用AngularJS并部署了一个网站,在我的网站头部区域,控制台中出现了很多样式标签,如下图所示。我不知道这些标签来自哪里,也不知道如何从网站头部删除这些样式标签。输入图像描述

你能否分享你的代码,这样我们就可以调试了。从图片中很难理解样式标签是如何生成的。请提供最小完整可验证示例,而不仅仅是图片。 - bhansa
你可以尝试我的答案中提供的解决方案。我希望它能够符合你的期望。 - Rohìt Jíndal
6个回答

5

当我们按照您所提到的方法使用以上代码时,我的整个网站主题都变了,所有颜色都发生了改变。@Arpit Meena - Midhunsai
单一主题即默认材料主题 @Arpit Meena - Midhunsai
@Midhunsai,我已经更新了答案,请检查并告诉我是否适用于您。 - Arpit Kumar
控制台显示错误“未知提供者$mdTheming”,我尝试了这样的代码:angular.module('core').config(['$stateProvider', '$urlRouterProvider','$mdTheming', '$mdThemingProvider', function ($stateProvider, $urlRouterProvider,$mdTheming, $mdThemingProvider) { $mdThemingProvider.generateThemesOnDemand(true); $mdThemingProvider.theme('myDefaultTheme') .primaryPalette('purple') .accentPalette('green'); $mdTheming.generateTheme('default'); $mdThemingProvider.setDefaultTheme('default'); }); @Arpit Meena - Midhunsai
让我们在聊天中继续这个讨论。链接 - Arpit Kumar
显示剩余2条评论

3

如果您想删除所有样式标签:

var st = document.getElementsByTagName('style');

并添加一个循环来移除它们全部。
for(i = 0 ; i < st.length ; i++){

    st[i].parentNode.removeChild(st[i]);

}

请问为什么在部署时,那些样式标签会出现在头部?@Bhansa - Midhunsai
你应该检查一下你的代码,无论是生成代码还是检查HTML文件。 - bhansa
如果我编写了内联样式,那么这些样式标签会出现在头部吗?@Bhansa - Midhunsai
@Midhunsai,它们已经在标题中了,但如果它们是内联的话,对你来说就不会出现问题。 - bhansa
你应该将它添加到正在加载的样式下面,或者在body结束时添加,这样文档就可以加载并找到所有这些样式。 - bhansa
显示剩余2条评论

2

请尝试以下 JQuery 代码:

$('style[md-theme-style]').remove();

这是“回答问题”的一种方式…那么样式实际上影响的元素呢? - Marko Manojlovic

0

原因:

Angular-material 包含一些默认的 theme css 作为常量变量。

您可以在 这里(angular-material.js) 进行查看。

enter image description here

当我们在浏览器中加载这个库时,它会动态地将许多样式标签添加到页面的<HEAD>部分。 如何禁用? 您可以覆盖constans。这将导致不在组件上添加主题类。
angular(myApp, [ ngMaterial, myAppModules ]).constant("$MD_THEME_CSS","");

您也可以查看angular-material.js。 这个解决方案也被提议在库内部。

enter image description here


0
你试过先禁用主题生成,然后再启用你想要的主题吗?
angular.module('myApp', ['ngMaterial'])
.config(function($mdThemingProvider) {
  //disable theme generation
  $mdThemingProvider.generateThemesOnDemand(true);

  //themes are still defined in config, but the css is not generated
  $mdThemingProvider.theme('altTheme')

.primaryPalette('purple') .accentPalette('green');

//生成名为altTheme的预定义主题 $mdTheming.generateTheme('altTheme'); });


0

当 material.js 加载到您的浏览器中时,它会动态地向页面文档添加许多 CSS 样式标签。要禁用它们,您需要使用以下命令重新编译 angular-material:

git clone https://github.com/angular/material.git

然后安装依赖项:

cd material
npm install

然后打开 gulp/util.js 文件,将第 53 行改为:

var jsProcess = series(jsBuildStream, themeBuildStream() )

成为:

var jsProcess = series(jsBuildStream)

然后运行构建过程:

gulp build

我正在使用Grunt而不是Gulp @MehulJoshi - Midhunsai
这与您的构建系统无关,您必须转到节点模块目录,然后对材料进行更改,然后再次构建,以反映更改。为此,您需要安装gulp。 - MehulJoshi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接