一:发送ajax请求,在onComplete时,如果返回的html时包含有javascript,则这些javascrip并不会被认到,也并不不执行。这个问题困扰了我很长时间,后面再发个时间把这个知识点总结一下及如何来解决这个问题。
1.发现对于ajax的理解还是不够深,抽些时间看看书,看看资料,好好地研究下。
2.发现对于protype的理解还是不够深,抽些时间看看书,看看资料,好好地研究下。
3.写个例子跑下到底为什么什么情况下不会执行。
二:查的相关的资料:
1.网上有篇文章“让插入到 innerHTML 中的 script 跑起来”(http://www.coolcode.cn/show-117-1.html)有说种解决方法,但是总感觉这个速度是否有问题。
2.另:
事实上,prototype(v1.4.x)在 "Ajax.Updater" 类中也提供了类似思路的实现,不过代码更为简洁精妙:
update: function(element, html) {
$(element).innerHTML = html.stripScripts();
setTimeout(function() {html.evalScripts()}, 10);
}
......
evalScripts: function() {
return this.extractScripts().map(eval);
}
这两个函数很清楚的说明了执行innerHTML中的脚本的处理逻辑。