我在Prado2.1RC1上运行了一个相对较旧的webapp,我正试图通过添加一些不错的google可视化图表来增强它。
这个问题是在集成google (这取决于jquery)和prado2.1所使用的旧库时出现的。
Prado使用一些内置库(其中一些是base.js、dom.js、ajax.js等)+ prototype 1.4。
在我尝试集成教程示例的第一个时刻,我在chrome控制台中记录了两个错误。
未登录RangeError:base.js:524上的无效数组长度 未定义的TypeError:未定义不是函数
查看base.js,我发现那些错误是由shift函数中的原型错误引起的(我认为),因为shift是这样实现的:
shift function() {
var result = this[0];
for (var i = 0; i < this.length - 1; i++)
this[i] = this[i + 1];
this.length--;
return result;
}但当this.length==0,这个-长度-爆炸。
所以在修复这个错误后,我希望google的好图表会出现.但不是。在javascript控制台中没有抛出错误,但我在div中使用红色背景显示了这个文本,在div中应该添加google图表:
数字不是函数
我对这个错误一无所知。我怀疑webapp应用程序所需的大量javascript库存在一些混乱。
我知道,考虑到我使用的是一个旧的、不受欢迎的、不受支持的Prado和Prototype版本,这种情况并不是很好。但是我非常喜欢使用php和这个框架的n00b。我真的不知道迁移到一个新的Prado版本来更新javascript库需要多长时间,我甚至知道我是否能够做到这一点。也许你们中一些有更多经验的人可以告诉我在这种情况下什么是最好的,或者我该怎么做.
谢谢!!如果你需要更多的细节,请告诉我。
发布于 2011-09-25 11:19:07
我不确定这是否正是您的问题,但据我所知,当您试图将jquery/google集成到您的项目中时,您似乎注意到了一些问题。
您不应该需要jquery来实现这一点,并且可以直接加载j皂i(和必要的可视化包)。这些应该是名称空间(比如google.x.y),而不是干扰您的其他代码--尽管我可能弄错了这可能会把事情搞砸。
下面是如何在不使用jquery的情况下加载jsapi的方法:
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load('visualization', '1', {packages: ['table']});
</script>这就是问题所在吗?
发布于 2012-06-25 12:19:11
由于Prado使用的是Prototype,并且Prototype和jQuery都使用"$“,所以要确保您显式地编写(JQuery)(#选择器)而不是$(#选择器)。这可能是你问题的根源。
发布于 2012-08-22 22:01:48
我有一个由jQuery驱动的模板,我使用它作为我的项目的布局(母版页)。
当我用jQuery替换所有$("selector")时,我避免了prototype和jQuery("selector")之间的冲突。
https://stackoverflow.com/questions/7534540
复制相似问题