3

これはかなり単純なはずのように感じますが、あまりロードされていないようです。

私はこれを持っていますapp/views/layouts/application.html.haml

= javascript_include_tag 'http://www.google.com/jsapi'
%script{ :type => "text/javascript", :charset => "utf-8" }
  //<![CDATA[
  google.load("jquery", "1.3.2"); 
  google.load("jqueryui", "1.7.2");
  //]]>
= javascript_include_tag 'application'

...私のapplication.jsファイルにはいくつかの良い'olejQueryが含まれています。JRailsをインストールし、jQueryはライブラリのローカルコピーで正常に動作しますが、GoolgeAPIのものを使用したいと思います。

これが私のブラウザが生成するものです:

<script src="http://www.google.com/jsapi.js" type="text/javascript"></script>
<script charset='utf-8' type='text/javascript'>
  <!-- /<![CDATA[ -->
  google.load("jquery", "1.3.2");
  google.load("jqueryui", "1.7.2");
  <!-- /]]> -->
</script>
<script src="/javascripts/application.js?1255040651" type="text/javascript"></script>

Safariとエラーコンソールを使用しています。エラーコンソールは次のエラーを報告します。

ReferenceError: Can't find variable: google
ReferenceError: Can't find variable: $

これに対応して、私のjQueryスクリプトはどれも機能していません。

ヘルプ?

4

2 に答える 2

9

javascript_include_tag自動的に.jsを最後に置きます。を使用している間、これを回避する方法はないようjavascript_include_tagです。(独自のコメントに従って)独自のスクリプトタグを作成する必要があります。

%script{ :src => 'google.com/jsapi', :type => 'text/javascript', :charset => 'utf-8' }

個人的には、jsapiをスキップして、ライブラリを直接参照することを好みます。

= javascript_include_tag 'http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js'
于 2009-10-09T03:18:10.683 に答える
1

Hamlに関する補足として、:javascriptCDATAとコンテンツを使用してスクリプトタグを手動で定義するのではなく、フィルターを使用できます。

:javascript
  google.load("jquery", "1.3.2"); 
  google.load("jqueryui", "1.7.2");
于 2009-10-09T08:12:23.677 に答える