这感觉它应该很简单,但似乎没有多少装载。
我在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脚本都没有工作。
帮助?
答案 0 :(得分: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'
答案 1 :(得分:1)
作为关于Haml的旁注,您可以使用:javascript
过滤器,而不是手动定义带有CDATA和内容的脚本标记:
:javascript
google.load("jquery", "1.3.2");
google.load("jqueryui", "1.7.2");