在Gmail内的C​​hrome或Safari检查器控制台中输入以下内容:

function load(url,cb){var x=document.body.appendChild(document.createElement('script'));x.src=url;x.onload=function(){console.log("Dynamically loaded "+url);if(cb){cb();}};if(!cb){x.setAttribute('async','')}}
load("https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.6.2/modernizr.min.js",function(){alert("Modernizr loaded");});


使许多文本的布局变得疯狂。

能解释一下吗?我希望我的工具(包括运行一个可动态加载Modernizr的书签)在Gmail上运行。

最佳答案

Modernizer在<html>标记中添加了许多类,其中一个类是js。尽管我怀疑它仅表示对JavaScript的支持,但我在文档中找不到任何描述的内容。 Google缩小了类别,因此它们都是短的两个字母项目(可能是生成的)。其中之一也恰好是js,这导致许多文本居中。

实际上,要取消软管连接,只需在动态加载脚本并修复其自身之后从js标记中删除<html>类。

这是固定版本:

function load(url,cb){var x=document.body.appendChild(document.createElement('script'));x.src=url;x.onload=function(){console.log("Dynamically loaded "+url);if(cb){cb();}};if(!cb){x.setAttribute('async','')}}
load("https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.6.2/modernizr.min.js",function(){var htmlElement = document.getElementsByTagName("html")[0]; htmlElement.className = htmlElement.className.replace
      ( /(?:^|\s)js(?!\S)/g , '' );    alert("Modernizr loaded");});

09-12 01:04