prototype.js和ajaxpro.dll冲突

vfan2010 2008-08-01 09:25:43
在.net页面中,如果在后台注册了Ajaxpro,在前台引用prototype.js的话,
使用prototype中$产生的对象会失去所有的方法,如show,hide,不知道大家遇到这种问题没,如果使用ajax.dll就没问题。

原因已经知道,AjaxPro自己写了一个方法,在IE下载的文件/ajaxpro/prototype.ashx中,覆盖了prototype的$方法
function $() {
var elements = new Array();

for (var i = 0; i < arguments.length; i++) {
var element = arguments[i];
if (typeof element == 'string')
element = document.getElementById(element);

if (arguments.length == 1)
return element;

elements.push(element);
}


不知道各位有什么好的解决方案没,我目前有两个,一是用Ajax.dll取代AjaxPro.dll,二是把prototype的引用放到页面的最后。

...全文
230 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
vfan2010 2008-09-04
  • 打赏
  • 举报
回复
把引用prototype.js的代码放到最后,可以解决这个问题
vfan2010 2008-09-04
  • 打赏
  • 举报
回复
后来原因找到了。因为ajaxpro自己的一个js文件AjaxPro.2.prototype.js也提供了一个$方法,而且一般ajaxpro提供的js文件比较靠后,所以它覆盖了prototype的$方法,自然所有的prototype特性都没有了。

用httpwatch插件或者用Reflector.exe反编译ajaxpro.dll都能找到那个$方法。
function $() {
var elements = new Array();

for (var i = 0; i < arguments.length; i++) {
var element = arguments[i];
if (typeof element == 'string')
element = document.getElementById(element);

if (arguments.length == 1)
return element;

elements.push(element);
}

return elements;
}


无满意答案。
vfan2010 2008-08-01
  • 打赏
  • 举报
回复
版本6.5.9.1
zhulei2008 2008-08-01
  • 打赏
  • 举报
回复
Ajax.dll,AjaxPro.dll,

这两个应该是差不多的,可能就存在一个版本上的差异

个人觉得最好是自己写,这样灵活性,可扩展性都要有优势些
belldandy11 2008-08-01
  • 打赏
  • 举报
回复
Ajaxpro.dll是7.X版本的吗?
wwd252 2008-08-01
  • 打赏
  • 举报
回复
顶了
cheng_feng001 2008-08-01
  • 打赏
  • 举报
回复
我也遇到过,曾经一个自定义控件里,自定义了一个$()函数,在引用该控件的页面,当用jQuery时就出现异常,找了N久,最后看控件源码,才发现函数冲突。将自定义控件函数改名后问题解决。
踏雪听雨 2008-08-01
  • 打赏
  • 举报
回复
我都在用ajax.dll,没出现过这样的问题
belldandy11 2008-08-01
  • 打赏
  • 举报
回复
http://www.schwarz-interactive.de/
ajaxpro作者的主页,上面有最新的7.7.31.1版本下载
使用的时候要配置web.config

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧