Javascript 未捕获引用错误:未定义氮气
我正在Yaws驱动的站点上运行一个氮网络框架。过去三年来,它在所有浏览器上都能正常工作。但最近,谷歌Chrome和Opera上的回发可能无法预料地失败。控制台中的错误为未捕获引用错误:未定义氮气。引用的错误行显示了这一点Javascript 未捕获引用错误:未定义氮气,javascript,jquery,erlang,yaws,nitrogen,Javascript,Jquery,Erlang,Yaws,Nitrogen,我正在Yaws驱动的站点上运行一个氮网络框架。过去三年来,它在所有浏览器上都能正常工作。但最近,谷歌Chrome和Opera上的回发可能无法预料地失败。控制台中的错误为未捕获引用错误:未定义氮气。引用的错误行显示了这一点 Nitrogen.$set_param('pageContext', 'j-oHyfcHcpNAZCWh7t6Y5EBqMbhta0E01Fl0jNMCOlr0YfeAEUGiprZ21Oqs1rDf6nutqrfw5LPfy9W1x8kk_k4-Z_adkaQy9Ijk66R
Nitrogen.$set_param('pageContext', 'j-oHyfcHcpNAZCWh7t6Y5EBqMbhta0E01Fl0jNMCOlr0YfeAEUGiprZ21Oqs1rDf6nutqrfw5LPfy9W1x8kk_k4-Z_adkaQy9Ijk66RY7hoi0kIbsf6RV34ZCJp8YXOu9SGNGe8tHLS-JbeiVzhzBIqfSUC5KXu1eLjVhzip_Z_dAxRWu3yzgG8pgCLvWqSIG8LbeG-C4kPZIrYQL9Y27cDdQHTLN1nbStbMekOw6Iviu-F19Jp5RW2ojIrkH2AscKqwIg');
我曾试图找出错误的原因,但徒劳无功。更让我困惑的是,它刚刚启动,而不是在每个浏览器上,也不是在每个计算终端上
这就是我的模板的外观
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>[[[page:title()]]]</title>
<script src='/nitrogen/jquery.js' type='text/javascript' charset='utf-8'></script>
<script src='/nitrogen/jquery-ui.js' type='text/javascript' charset='utf-8'></script>
<script src='/nitrogen/livevalidation.js' type='text/javascript' charset='utf-8'></script>
<script src='/nitrogen/nitrogen.js' type='text/javascript' charset='utf-8'></script>
<script src='/nitrogen/bert.js' type='text/javascript' charset='utf-8'></script>
<link rel="stylesheet" href="/nitrogen/jquery-ui/jquery.ui.all.css" type="text/css" media="screen" charset="utf-8" />
<link rel="stylesheet" href="/nitrogen/nitrogen.css" />
<!-- For google analytics -->
<script>
...some google code here ....
</script>
</head>
<body ">
[[[page:body()]]]
<script>
[[[script]]]
</script>
</body>
</html>
[[page:title()]]
…这里有一些谷歌代码。。。。
首先,我怀疑这是否有关联,但你的标签中是否真的有一个未闭合的双引号(“),或者仅仅是一个零散的复制和粘贴的残余。这是我首先想到的
其次,这个错误的原因有点难以捉摸,但这里有一些线索,你可以尝试解开这个谜团:
- “未定义氮气”错误只能由以下几种原因之一引起:
- 根本没有加载non.js脚本(提供静态内容失败)。这可以检查CTRL+SHIFT+I中的网络选项卡以查看non.js的响应
- non.js脚本崩溃了,这将显示在js控制台中,但是您没有提到它,所以可能不是这个
- 发生了一件称为“氮=未定义”的事情
话虽如此:
- 您是否能够自己复制此错误,或者是否正在进行用户报告
- 当回发失败时,它们是在页面加载和其他事情发生后失败,还是在页面加载时立即失败
这对我来说绝对是一个新的错误-我没有遇到过任何问题,除非有什么东西首先导致静态内容无法加载。首先,我怀疑这是相关的,但你的标签中是否真的有一个未关闭的双引号(“),或者仅仅是一个零散的复制和粘贴残余。这是我第一件突出的事情
其次,这个错误的原因有点难以捉摸,但这里有一些线索,你可以尝试解开这个谜团:
- “未定义氮气”错误只能由以下几种原因之一引起:
- 根本没有加载non.js脚本(提供静态内容失败)。您可以检查CTRL+SHIFT+I中的网络选项卡,查看non.js的响应
- non.js脚本崩溃了,这将显示在js控制台中,但是您没有提到它,所以可能不是这个
- 发生了一件称为“氮=未定义”的事情
话虽如此:
- 您是否能够自己复制此错误,或者是否正在进行用户报告
- 当回发失败时,它们是在页面加载和其他事情发生后失败,还是在页面加载时立即失败
这对我来说绝对是一个新的错误-不是我遇到过的问题,除非一开始有什么东西导致静态内容无法加载。我在使用氮气时也遇到同样的问题,我将这些文件(jquery.js、jquery ui.js…模板html中提到的文件)复制到目录“/site/static/niton”,问题已经解决了。
这些js文件可以在“/lib/niton_core/www”中找到,如果您在安装包中找不到它们,您可以下载氮气的binares版本 我在使用氮气时也遇到了同样的问题,我将这些文件(jquery.js、jquery ui.js…模板html中提到的文件)复制到“/site/static/non”目录中,问题已经解决。
这些js文件可以在“/lib/niton_core/www”中找到,如果您在安装包中找不到它们,您可以下载氮气的binares版本 如果你能找到一些类似的问题和答案,可能会有所帮助。@SteveVinoski在发布这个问题之前,我已经浏览了大部分可用的解决方案。我确信氮开发者知道这些错误的原因,并且一定已经采取了所有的预防措施来防止它们的发生,但是我说——在我的情况下,这是不可预测的。我在Windows操作系统上的一些版本IE和opera上也注意到了这一点。结果,浏览器升级被提升了,重新安装浏览器解决了这个问题。如果你能找到一些类似的问题和答案,可能会有所帮助。@SteveVinoski在发布这个问题之前,我已经浏览了大部分可用的解决方案。我确信氮开发者知道这些错误的原因,并且一定已经采取了所有的预防措施来防止它们的发生,但是我说——在我的情况下,这是不可预测的。我在Windows操作系统上的一些IE和opera版本上也注意到了这一点。最终,浏览器升级被提升,重新安装浏览器修复了问题。我在Google Chrome 51.0.2704.106版(64位)上成功地复制了这个错误Ubuntu 14.04LTS。启动页面按预期加载。加载后,所有回发功能(链接)都会自动加载当客户端缓存被清除时,fail.non.js使用HTTP/1.1代码304和200成功加载。页面按预期加载,但回发是否在页面加载后工作一段时间,还是在页面加载后立即失败?未关闭的双引号(“)我已设法在Google Chrome 51.0.2704.106版上重现此错误(64位)Ubuntu 14.04LTS。启动页面按预期加载。加载后,所有回发函数(链接)都会失败。当客户端缓存被清除时,non.js使用HTTP/1.1代码304和200成功加载。页面按预期加载,但回发会在页面加载后工作一段时间,还是立即失败