Rails和ajax文件上传 – 无法读取属性’innerHTML’的null错误
我正在开发一个带有动态模块的Rails应用程序 – ajax – 图像上传到图库。 我正在基于这个应用程序 – 多文件上传 – 演示 。 我不是很喜欢Javascript和东西,所以我从该实现中复制了很多逻辑。
我根据rounders demo的所有逻辑构建了我的应用程序,我已经包含了所有的gems和javascript库,但是我收到了一个错误:
Uncaught TypeError: Cannot read property 'innerHTML' of null
在chrome控制台中,它引用了tmpl.js文件
tmpl.load = function (id) { return document.getElementById(id).innerHTML; };
我对JS的了解并没有让我明白哪一段代码触发了这个函数,所以我可以更进一步。
你能告诉我调查这个问题根源的下一步是什么? 我预计潜在的原因可能会有所不同,所以我不想粘贴应用程序中的所有代码。
这是旧的,但我找到了一个实际的解决方案。 将application.js
的require更改为//=require jquery-fileupload/basic
而不是//= require jquery-fileupload
。
您收到此错误的原因是您缺少脚本标记id =“template-upload”或id =“template-download”或两者。
演示中的示例: http : //blueimp.github.com/jQuery-File-Upload/
UI版本取决于存在的这些模板。
我遇到了同样的问题,并决定检查丢失的内容。
希望有所帮助。
我也遇到了同样的问题。 但是,加载基本版本的文件上传插件对我来说不是一个选项,因为我使用预览进行一次上传,而不是另一次上传。 您可以通过将file-upload插件的uploadTemplateId
和downloadTemplateId
选项设置为uploadTemplateId
禁用“预览”function以及尝试处理template-upload
和template-download
。
错误消息告诉我们document.getElementById(id)
返回null
,因此文档中当前没有具有指定id.
元素id.
要进行调试,请尝试添加对console.log(id);
的调用console.log(id);
在return
声明之前。 完成后,您可以找到导致问题的id
值。 希望错误是一个简单的拼写错误的结果,记住id
的值是区分大小写的。 如果错字不是问题,您至少可以设置一个条件断点,因为您现在知道要中断的id
的值。 在点击断点之后,只需逐步调用调用函数即可“查看哪一段代码触发了该函数”。 希望这可以帮助。
我正在使用这个插件几个月,今天我注意到文件上传不起作用,我收到一个错误
"cannot read property 'innerHTML' of null error".
我调查了它,因为一个简单的原因。 文件路径
http://blueimp.github.io/JavaScript-Load-Image/js/load-image.min.js
变成
http://blueimp.github.io/JavaScript-Load-Image/js/load-image.all.min.js
在blueimp的git中。 你可以在这看到
https://github.com/blueimp/jQuery-File-Upload
此文件中的路径已更改。
https://github.com/blueimp/jQuery-File-Upload/blob/master/index.html
我改变了正确的道路和工作。 希望这个答案可以帮助那些遇到同样问题的人。