nic*_*ius 5 django jquery django-debug-toolbar
我正在使用django-debug-toolbar(最新版本,v1.2.1),我在控制台中不断收到此错误:
Empty string passed to getElementById()
Run Code Online (Sandbox Code Playgroud)
对于jQuery中的这段代码(第2757行):
...
// HANDLE: $(#id)
} else {
elem = document.getElementById( match[2] );
...
Run Code Online (Sandbox Code Playgroud)
我单击的调试工具栏中的每个链接都会再次出现此警告.
当我注释掉我的主要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()
Run Code Online (Sandbox Code Playgroud)
即使加载了jQuery并且我告诉django-debug-toolbar我使用我的版本(with 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>
Run Code Online (Sandbox Code Playgroud)
我还有一个我正在使用的返回顶部小部件可能是罪魁祸首.由于我一直在使用这段代码,我从未想过这是一个问题,但现在我怀疑它可能是.此外,由于错误与id脚本使用相关,class我解雇了它.但是当我评论它时,DjDT会起作用.
在这里的帖子的帮助下,我解决了这个问题.不确定它与它有什么关系id,但是我在a选择器中使用的返回顶部小部件中存在冲突.我改变了class它并且它正在工作.我测试了两个项目,似乎是固定的.感谢您的帮助!
由于您已经在页面上获得了jQuery,因此您可以告诉调试工具栏不要加载它的版本.尝试将此添加到您的设置:
DEBUG_TOOLBAR_CONFIG = {
'JQUERY_URL':'',
}
Run Code Online (Sandbox Code Playgroud)
(请参阅配置文档以获取更多信息.)
希望这足以解决您的问题.
不确定这是否适合您,但从这个答案中得到提示,尝试将以下内容添加到您的中settings.py,看看它是否有效
def show_toolbar(request):
return True
SHOW_TOOLBAR_CALLBACK = show_toolbar
Run Code Online (Sandbox Code Playgroud)
这将有效地删除调试工具栏的所有检查,以确定它是否应该加载自身;它总是会加载。
由于您在评论中提到您要在标签底部导入 jquery </body>,因此请确保所有标签均已关闭;您的模板中可能缺少标签。另外,如果您出于性能考虑将 jquery 脚本标记放在底部,您可以考虑使用async或defer。
编辑1:根据评论提出更多建议
您是否使用 Firefox 或 Chrome 等扩展程序?检查这个。另外,如果您通过“#”选择器进行查询,请确保选择器是唯一的(应该如此),否则您将在 FireFox 中遇到此错误。
我的猜测是,您的 html 中有一个带有某个 id 的元素,该元素也在模板中使用django-debug toolbar,并且您正在使用#选择器查询它。
| 归档时间: |
|
| 查看次数: |
1933 次 |
| 最近记录: |