在Gmail内的Chrome或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");});