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文件包含一些好的 'ole jQuery. 我已经安装了JRails,我的 jQuery 可以很好地与库的本地副本配合使用,但我想使用来自 Goolge API 的那些。

这是我的浏览器生成的:

<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 的旁注,您可以使用:javascript过滤器而不是手动定义带有 CDATA 和内容的脚本标记:

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