1. ホーム
  2. javascript

[解決済み] google.loadはなぜ私のページを空白にするのですか?

2022-11-26 09:12:41

質問

これはおかしいと思うのですが、解決策が見つかりません。

いったいなぜ、このフィドルは http://jsfiddle.net/carlesso/PKkFf/ はページの内容を表示し、google.loadが発生するとページが空白になるのはなぜでしょうか?

google.loadがすぐに行われるとうまくいくのですが、遅れて行われると全くうまくいきません。

怠惰な(あるいは賢明な)あなたのために、ページのソースを以下に示します。

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Ciao</title>
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
  </head>
  <body>
    <h1>Test</h1>
    <div id="quicivanno">
      <p>ciao</p>
    </div>
  </body>
  <script type="text/javascript">
       setTimeout(function() {google.load('visualization', '1.0', {'packages':['corechart']});}, 2000);
  </script>
</html>​

どのように解決するのですか?

google.loadはdocument.write()を使ってページにスクリプトを追加しているようですが、ページを読み込んだ後にこれを使うと、htmlが消されてしまいます。

より詳細な説明はこちら。 http://groups.google.com/group/google-ajax-search-api/browse_thread/thread/e07c2606498094e6

アイデアの1つを使って、doc.writeではなくappendを使わせるために、loadのコールバックを使うことができます。

setTimeout(function(){google.load('visualization', '1', {'callback':'alert("2 sec wait")', 'packages':['corechart']})}, 2000);

これは、遅延アラートウィンドウで2秒待つことを示すものです。