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

转载 2013年12月02日 12:36:49

一、首先必须清楚,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子页之间的通信问题。

Ajax中主页加载分页面后,分页面js脚本不执行的解决办法

最近捣鼓JQuery,其中强大的Ajax系列函数令人印象深刻,所以做项目时毫不犹豫地采用了一下该技术,在主页中动态加载分页面进来,咋看效果不错,都能实现了第一层次的加载,但深入下去问题就出来了:动态加...

解决用jquery load加载页面到div时,不执行页面js的问题

使用.bind()方法是很浪费资源的,因为它要匹配选择器中的每一项并且挨个设置相同的事件处理程序建议停止使用.live()方法,因为它已经被弃用了,由于他有很多的问题.delegate()方法“很划算...

ajax回调函数动态加载的标签里面js事件不执行

出现原因: 就是在使用ajax来动态的添加HTML标签,并要对添加的标签进行添加js的点击事件,目前我使用的jquery是1.8.3版本,而我使用的是方法是$(".aa").click(functi...

使用.live()可以解决动态加载html,但js无效果的问题

翻译原文地址:http://www.alfajango.com/blog/exploring-jquery-live-and-die/ 很多开发者都知道jQuery的.live()方法,...
  • Sbangm
  • Sbangm
  • 2014年10月22日 12:00
  • 6508

JQuery 解决用load加载页面到div时,不执行页面js的问题

1、在源码里加上此方法$("id").load(function(){ $(".close").click(function(){ $(".detail").hide(); })...
  • lovoo
  • lovoo
  • 2016年11月18日 21:35
  • 3404

[AJAX]js设置全局变量,在ajax中给予赋值赋值不上

因为Ajax是以异步方式来获取数据的,执行Ajax的时候你程序是继续往下面执行的,这样你那个变量没有被Ajax方法赋值,因此你的逻辑是无法使用同步方式编写的解决方法一: 将逻辑赋值写在ajax回调函...

关于ajax请求后js绑定事件失效问题解决方法

$(function(){ $(document).on('click', '.add' ,function(){ window.location.href="...

jsp文件ajax不执行

$.ajax           ({               type:"POST",               url:"servlet/shopServlet",             ...

ajax亦步刷新时,会导致某些javascript的失效解决方法

由于ajax是进行一步刷新的,也就是说当使用ajax时网页端脚本也是部分刷新的。当在网页加载需要执行的某些js函数,即在          $(function () { //网页初始化需要执行的...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ajax动态加载js,导致js不执行失效问题
举报原因:
原因补充:

(最多只允许输入30个字)