如何从标题部分删除样式标记

时间:2017-04-27 06:13:37

标签: javascript html angularjs minify meta-tags

我正在使用角度js并部署了一个站点,在我的网站的头部有很多样式标签正在控制台中,如下图所示,我附上了我的网站控制台。我不知道这些标签的来源,如何从网站首页删除这些样式标签

enter image description here

6 个答案:

答案 0 :(得分:6)

据我了解,您使用的是Angular Material Design,它负责在?sp.vcov部分添加style代码。这一切都发生在幕后,您可以关注this link了解更多信息。我认为你不必担心删除这个样式标签,因为它来自功能。 Angular Material Design动态注入此head标记以用于主题目的。

参考:https://material.angularjs.org/latest/Theming/05_under_the_hood

谢谢。

修改

如果您不想默认生成主题,则可以使用

style

实施例

$mdThemingProvider.generateThemesOnDemand(true);

参考:https://material.angularjs.org/latest/Theming/04_multiple_themes

答案 1 :(得分:3)

如果要删除所有样式标记:

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

并添加一个循环以删除所有这些。

for(i = 0 ; i < st.length ; i++){

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

}

答案 2 :(得分:2)

请尝试使用以下JQuery代码

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

答案 3 :(得分:0)

原因:

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

您可以查看here(angular-material.js)

enter image description here

当我们在浏览器中加载此库时,它会动态地将大量style tags动态添加到页面的<HEAD>部分。

如何停用?

您可以覆盖constans。这将导致不在组件上添加主题类。

angular(myApp, [ ngMaterial, myAppModules ]).constant("$MD_THEME_CSS","");

您还可以查看angular-material.js。这个解决方案也在图书馆本身提出。

enter image description here

答案 4 :(得分: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( '紫色')     .accentPalette( '绿');

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

答案 5 :(得分:0)

当material.js加载到浏览器中时,会向页面文档动态添加大量css样式标记。要禁用它们,您需要使用以下命令自行重新编译角度材料:

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