【发布时间】:2010-11-19 00:24:36
【问题描述】:
我在一家开发公司工作,正在对 Web 应用程序进行重大重新设计,每次点击后都会重新加载所有内容,以广泛使用 Javascript,因此它实际上感觉就像一个真正的 Web 应用程序。其中一项功能是使用基于 Web 的 Painter(想想 Web 上的 MSPaint),我将其嵌入到按需页面中。绘制并上传图像后,Web 应用程序会卸载小程序并继续显示文件上传到的目录。
这就是麻烦的开始。这一切都适用于 IE 和 Safari,但不适用于 Firefox 3.5(不过 3.0 可以完美运行)。 Firebug 告诉我缺少 expando 属性。
我之前正在开发的 Web 应用程序 Tiparlo 有一个类似的问题(事实上,通过 jQuery 对小程序进行的任何操作都是错误的)但通过包装一个 div 并控制(隐藏和显示)解决了这个问题div 而不是小程序。不幸的是,这不适用于此 Web 应用程序,因为 Applet 必须被销毁,而不仅仅是隐藏和显示,因为它占用了太多资源来在不需要的整个时间运行。
简而言之:是否可以通过 Javascript 使 Applet 自行销毁?或者:是否有解决 jQuery/expando/applet 问题的方法?我知道 applet 在 HTML 4.01 strict 中已被弃用,但现在将其更改为 object 不是一种选择。
编辑:我添加了一张 Firefox + Firebug 的图片来向您展示实际的错误消息。发布代码没有上帝,因为它在所有其他浏览器上都能完美运行,并且是 Firefox 3.5 特有的问题。 Here be pictures
注意:你可以忽略来自 button.js 的 JS Bug。
【问题讨论】:
-
如果你破坏了小程序周围的 DIV 会发生什么? (不隐藏它,用 removeElement 销毁它并删除
-
我试过了,但无济于事。我的理论:我想通过隐藏父 div,浏览器本身也负责隐藏子项,而不是 Javascript。但是,在删除父 div 时,删除子小程序也是 Javascript 的工作,从而导致出现 expando 错误。我一直在查看 jQuery Bug Tracker,该特定 Bug 列在 1.3.3 版本的路线图上。由于我等不及它自己修复(由 jQuery 开发团队修复),我必须找到解决方法。
标签: java javascript jquery web-applications