私はGoogleマップAPIのJavaScriptを非同期にしようとしています。非同期読み込みjavascript with document.write
ので、通常のスクリプトタグは<script src="https://maps.googleapis.com/maps/api/js?sensor=false"></script>
に動作します。しかし、以下の非同期バージョンにはありません。
(function() {
var gmap = document.createElement('script'); gmap.type = 'text/javascript'; gmap.async = true;
gmap.src = 'https://maps.googleapis.com/maps/api/js?sensor=false';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(gmap, s);
})();
いくつかのブレークポイント+検査アクションの後、この行が非同期モードで正しく動作しないことがわかりました。
document.write('<' + 'script src="' + src + '"' +
' type="text/javascript"><' + '/script>');
同期モードでのドキュメントオブジェクトは、「HTMLDocumentの」ですが、非同期モードでは代わりに「#document」です。ページが読み込まれた後、ドキュメントオブジェクトに何かが発生しました。思考?
乾杯。
更新:この質問はGoogle Maps APIを非同期ロードするのではなく、document.writeが起動されない理由です。この行にブレークポイントを設定すると、document.write関数が存在することがわかります。これはdocument.writeがネイティブであるという事実と関係がありますか?
ありがとうございました。私はこの行でブレークポイントを行い、自分自身をdocument.writeしようとしました。それはwrite()関数を見つけたので、それは奇妙です。書き込み関数が切り離されている場合、なぜそれは未定義ではないのですか? – user1736525
yea googleは冗談です – neaumusic