Javascript - 覆盖或阻止执行

Chr*_*ris 6 javascript jquery

我正在开发一个客户端项目,我必须包括他们的页眉和页脚,其中包括一些核心javascript文件.我在页面上有几个PNG,但是它们的核心JS文件编码很差,并且在尝试用包含使用AlphaImageLoader过滤器的DIVS替换包含.png文件的IMG标记之前不检查IE 7.结果是在IE 7中,所有我的.png图像都被替换为具有默认display:block的DIV标记,导致在我的页面中的每个png图像之后出现换行符.

我想做的是用更好的方法覆盖它们的功能或以某种方式防止它们执行,但是我不能修改js文件本身,它们定义了函数并将它附加到窗口onload事件.我已经尝试在几个地方重新定义相同名称下的函数(标题,就在/ body标记之前,在$(document).ready等等...)但原始函数似乎总是执行,大概是因为原来的函数代码是与事件处理程序一起存储的内容,而不仅仅是指向函数的指针.

我能解决什么?有没有办法有选择地删除onload事件处理程序?

小智 1

如果这是唯一在负载下运行的东西,我想你可以做

window.onload = null;
Run Code Online (Sandbox Code Playgroud)

如果还有其他东西正在运行,我想你必须重新连接它们。我想它有点脆弱。

  • 嗯,我能建议的就是启动 Firebug 之类的东西,然后看看 window.onload。可能有一些明显的方法可以改变它。 (2认同)