动易系统JS错误"语法错误"和"缺少对象"

类别:互联网络 作者:admin 时间:2008年07月25日 09:49:30 阅读:7,998  

  昨天把TooFree免费资源网的动易系统从2006版的升级到了SiteWeaver CMS6.5版,网站没出什么大错,但是打开频道页和文章页的时候却有错误提示:

java script error
description:语法错误
Line:2
See more details
java script error
description:缺少对象
Line:2
See more details

  这个错误很是让人讨厌,记得从动易2005版时升级2006版时也出现了这种情况,当时怎么处理的早就忘了,TooFree免费资源网期间也挂过好几次,G了一把,这方面的文章还真不少,这次解决了怎么也要记录下来。
  其实动易系统非常好用,只是国外空间很少支持asp+access的,国内空间的状况大家都知道。使用动易系统模板使用不合适、升级系统等极容易出现“语法错误”和“缺少对象”等JS错误提示,以下是从网上找的一些错误原因和解决方法:
  一、弹出java script error提示框的几种情况:

1.从网上采集的文章,在前台打开,出现这个错误框;
2.图片内容页的幻灯片不播放,点播放就出现JAVA错误;
3.只在频道首页、栏目列表页和内容页有这样的错误;
4.从其它网站复制粘贴过来的图片文章经常出现这样的错误;
5.新添加频道和栏目之后,容易出现这样的错误;
6.调用自定义函数标签时出现Javascript错误;
7.修改模板把搜索按钮改成图片后提示:java script error;
8.在模板中加入了JS调用代码,而JS文件并没有上传也会出现这个错误。

  二、出现java script error提示框的原因分析及其解决方法:

1.新安装好的网站或者新添加的频道或栏目,系统并没有真正生成必需的JS文件,此时添加的文章在前台显示可能会出现JS错误,因此要在后台相应的频道中点击“刷新所有的JS”、“刷新专题JS文件”、“刷新栏目JS文件”;有些人以为,我没有添加专题就不用刷新专题JS了吧?错!必须也要刷新才行。
2.一般是修改模板时,JS调用代码多了或者少了就会出现这个讨厌的提示框。比如:模板中存在过期的广告调用JS调用代码,删除后即正常。还有的是因为模板中缺少了以下三个JS中的某一个而引起的错误:

<script src="{$InstallDir}JS/prototype.js"></script>
<script src="{$InstallDir}JS/scriptaculous.js"></script>
<script src="{$InstallDir}JS/checklogin.js"></script>

3.有些是从其他网站复制过来的文章js错误导致的。建议复制文章后放在记事本中过滤一下JS代码。或者修改出现错误的那篇文章,在源码状态下,查找并删除图片文章中包含的错误代码。
4.缺少相应的函数,所以调用时就一直显示错误。有的朋友以前在修改模板时,把官方默认的一些代码(如:图片无级缩放代码等)给删除了,结果也会出现JS错误。所以,动易后来把这些代码改成了删除后自动添加的,其目的就是减少JS错误。
5.由于js文件没有上传成功或者使用的浏览器版本过低或者限制过多造成的,检查一下上传的js文件,建议IE浏览器版本6.0以上,其他浏览器也应使用较新版本。
6.有些是传递的参数设定有问题。比如(('{$ArticleID}')) 不需要加这么多的外包围。 只需要用{$ArticleID}就可以了!
7.在建立栏目或专题时,名称中包含了半角引号等非法字符而导致JS脚本错误,检查一下看有没有这方面的错误。
8.采集项目如果过滤设置不正确,致使采集过来的一些文章JS脚本没有被过滤,也会出错。请重新设置采集过滤选项。

  三、使用以上方法均未见效或者不想那么麻烦,可以在模板中加容错代码来解决:

1.在修改模板或模板中调用的相应广告失效,出现JS错误提示,在模板中添加容错代码。方法:

①添加自定义标签,如“{$MY_ResumeError}”,其内容为:<SCRIPT LANGUAGE="JavaScript"><!-- function ResumeError() {return true;} window.onerror = ResumeError;// --></SCRIPT>
②利用系统的模板内容替换功能,将自定义标签放入所有模板中,如:将“</head>”全部替换成“{$MY_ResumeError}</head>”。
③如果网站开启了生成html功能,则需要重新生成html文件。

2.升级动易系统后,出现JS错误提示,特别是图片频道会出现这样的错误提示:PhotoViewer变量未定义。这是因为当动易系统升级到新版本后,用的仍是旧版本下的模板,系统的JS代码和模板的JS代码不匹配。这样的话参照新版本模板中的代码对原模板代码进行修改即可。
3.当动易网站系统升级后,客户打开网页时在几乎全部页面都会出现JS错误提示,并不是表现在某一两个页面。这种错误最简单、见效快的解决方法是,在网站根目录的JS文件夹下的Stm31.js文件中,把代码:

If(nIE4||nNN4)window.onerror=function(m,u,l){return !confirm("Java Script Error\n"+"\nDescription:"+m+"\nSource:+"u"+"\nLine:"+l+"\n\nSee more details?");}

替换为:

IF(nIE4||nNN4)window.onerror=function(m,u,l){return true;}

这样问题马上解决了,立竿见影,不过这种做法不是从根本上解决问题的。

  到这里你的问题一定能得到解决,快去试试吧。
  转载请注明,转自:自由博客