【发布时间】:2015-02-18 11:56:29
【问题描述】:
在我包含 Facebook API 的那一刻,我得到了错误:
Uncaught ReferenceError: $ is not defined
原因是 Drupal 7 允许:
jQuery(....
但不是
$(....
但实际上 Facebook JS API 确实使用了
$(....
如何让 Drupal 支持 $( 注释或解决此问题的正确方法是什么?
更新
我假设这里必须改变一些东西:
(function(d){
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = '//connect.facebook.net/en_US/all.js';
d.getElementsByTagName('head')[0].appendChild(js);
}(document));
?
【问题讨论】:
-
为什么这对 facebook 很重要? javascript sdk 的初始化代码不使用 jquery(幸运的是)。
-
在上面的javascript部分,我添加了all.js。我会假设这是在某处调用 $(...,导致我收到错误消息?
-
Facebook 不使用 jQuery,所以这不是原因。这与 Facebook 完全没有关系。
-
看来我下面的回答不会有任何帮助。我对 FB 不是很熟悉,但我想@luschn 是对的,这不是 jQuery 问题。运行代码,能看到文档的
head添加了对应的script标签(与id="facebook-jssdk"为一)吗? -
PS 我已将您的代码从
UPDATE添加到我的 Drupal 7 测试站点(作为带有 PHP 过滤器的块) - 没有错误,一切正常。
标签: jquery drupal-7 facebook-javascript-sdk