5

我正在使用django-debug-toolbar(最新版本,v1.2.1)并且我在控制台中不断收到此错误:

Empty string passed to getElementById()

对于 jQuery 中的这段代码(第 2757 行):

...
// HANDLE: $(#id)
} else {
elem = document.getElementById( match[2] );
...

我单击的调试工具栏中的每个链接都会再次出现此警告。

当我注释掉我的主要 jQuery 源文件时,调试工具栏工作。此外,在 Django 管理员中,它运行良好,大概是因为 Django 管理员使用了不同的获取 jQuery 的方法。

我尝试了@Carlton Gibson 的回答,但这并不能解决我的问题。我也尝试过本地 jQuery 和 CDN 以及几个不同的版本,但无济于事......

我尝试了不同版本的 jQuery 并使用django-debug-toolbar. 我被困住了,我真的很喜欢这个工具,并希望它为我工作。

编辑

由于我收到了一些额外的评论和答案,我想我会进行编辑以解释我尝试过的内容。我尝试了所有建议都没有成功。但是,目前,我从另一篇关于 RequireJS 的帖子中看到另一个错误,并且django-debug-toolbar

GET http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js [HTTP/1.1 304 Not Modified 133ms]
ReferenceError: jQuery is not defined localhost:8000:119
TypeError: djdt is undefined toolbar.js:297
Empty string passed to getElementById()

即使 jQuery 已加载并且我告诉django-debug-toolbar使用我的版本(带有DEBUG_TOOLBAR_CONFIG = { 'JQUERY_URL': '', }),我仍然收到错误并且 DjDT 无法正常工作。这一次,它甚至没有出现,因为TypeError.

编辑

base.html是导入 JS 的部分。请记住,这是一个快照,它已经发生了很大变化。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js" defer></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js" defer></script>

我还有一个我正在使用的返回顶部小部件,这可能是罪魁祸首。由于我使用此代码已经很长时间了,所以我从不认为这是一个问题,但现在我怀疑它可能是。此外,由于该错误与id脚本使用有关,因此class我将其关闭。但是当我注释掉它时,DjDT 就可以工作了。

在本文的帖子的帮助下,我解决了这个问题。不知道它与 . 有什么关系id,但我在与a选择器一起使用的返回顶部小部件中发生了冲突。我改成了class,它正在工作。我在两个项目中进行了测试,它似乎是固定的。感谢所有的帮助!

4

2 回答 2

5

由于您已经在页面上安装了 jQuery,您可以告诉调试工具栏不要加载它的版本。尝试将此添加到您的设置中:

DEBUG_TOOLBAR_CONFIG = {
  'JQUERY_URL':'',
}

(有关更多信息,请参阅配置文档。)

希望这足以解决您的问题。

于 2014-07-08T08:31:26.467 回答
1

不确定这是否对你有用,但从这个答案中得到提示,尝试将以下内容添加到你的settings.py,看看它是否有效

def show_toolbar(request):
    return True
SHOW_TOOLBAR_CALLBACK = show_toolbar

这将有效地删除调试工具栏的所有检查,以确定它是否应该自行加载;它总是会加载。

由于您在评论中提到要在标签底部导入 jquery,因此请</body>确保所有标签都已关闭;您的模板中可能缺少标签。此外,如果出于性能考虑将 jquery 脚本标记放在底部,则可以考虑使用asyncordefer

编辑1基于评论的更多建议

您是否使用 Firefox 或 chrome 等的任何扩展程序?检查这个。另外,请确保如果您通过“#”选择器进行查询——确保选择器是唯一的(应该是唯一的),否则您将在 FireFox 中遇到此错误。

我的猜测是,你的 html 中有一个带有一些 id 的元素,它也在模板中使用django-debug toolbar,并且你正在使用#选择器查询它。

于 2014-11-28T04:10:00.557 回答