今天在修改dedecms的时候,js里给一个元素定义了一个方法 var dopost=function(){} FF下面debug的时候,奇怪的报dopost is not a function,实际上是已经定义了。 找了半天才知道,dedecms里面有一个隐藏input 它的name=dopost,就是这个原因,命名冲突了 只要把定义的方法改个名字 var doajax=function(){} 就OK了。
在做这种二次开发的时候,这种情况是很容易遇到的,最好是开始写的时候就要考虑这个问题,就可以保证没问题了,那些javascript库都是用的这种方式,把自己的函数都封装在自己的“命名空间”下面,就不会有冲突了,例如jQuery的实用函数,例如$.trim()。trim()就是封装在“$”下面。具体实现你可以去翻翻书
在做这种二次开发的时候,这种情况是很容易遇到的,最好是开始写的时候就要考虑这个问题,就可以保证没问题了,那些javascript库都是用的这种方式,把自己的函数都封装在自己的“命名空间”下面,就不会有冲突了,例如jQuery的实用函数,例如$.trim()。trim()就是封装在“$”下面。具体实现你可以去翻翻书