关闭

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

2585人阅读 评论(1) 收藏 举报
分类:

一、首先必须清楚,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
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:46282次
    • 积分:163
    • 等级:
    • 排名:千里之外
    • 原创:4篇
    • 转载:94篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论