1

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で動作させたいです。

4

1 に答える 1

2

Modernizerは<html>タグに多くのクラスを追加し、それらのクラスの1つはですjs。JavaScriptのサポートを表しているだけだと思いますが、それが何を表しているのかを説明しているドキュメントには何も見つかりませんでした。Googleはクラスを縮小したので、それらはすべて短い2文字のアイテムです(おそらく生成されます)。それらの1つもたまたま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");});
于 2013-03-06T05:32:01.030 に答える