ajax动态加载js,导致js不执行失效问题

一、首先必须清楚,ajax动态加载的js,是全部的js都不好使,都不执行,都无效了吗?

这点,我认为很关键,但是网上的文章都其实是一篇文章,是一个人写的。他并没有强调这一点,导致所有的文章都没有说这一点,其实并不是的。比如我们自己在addNews.jsp中的addNews.js(很简单,比如就是几个js方法,或者加上$(document).ready之类的)中写的js代码,虽然是ajax动态加载上来的,但是也会执行。再比如,我们常用的jquery.form.js,这个也可以加载。

所以,不要 认为所有的js都不会被执行。有的能,有的不能,我发现一个规律,就是用压缩工具压缩之后带有eval执行函数的,就可以被执行。最明显的就是ueditor不能被执行。


二、解决方法

1)最妥当、但是最笨重的解决方法。将所有不能ajax加载之后执行的js代码放在主页上进行调用。最妥当,没什么不方便的地方,但是造成在刚刚登陆页面的时候,太过于笨重,你比如ueditor这个插件的js就700k!!!

2)用网上说的,在ajax加载的页面的时候,检测出加载页面的js,然后利用js追加到主页的head里去。告诉你,大部分情况,大部分浏览器不管用。

3)如果不想把所有信息放在主页上,就在ajax加载不能执行js的那个模块上,利用iframe来实现,iframe加载出来的js都能执行,然后就是父页和iframe子页之间的通信问题。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值