最近在研究ajax的应用,在新加载的页面中,JS失效了,故此去寻找解决办法,特此分享。
具体原因是因为,ajax载入新的页面之前,js就已经加载完了,因此事件没能绑定载入到新的dom上,因此只要重新绑定下就可以了。
所以在此定义一个方法,在使用ajax获得新页面数据data的时候,把数据作为参数传入此方法中,就能重新绑定执行javascript了。
下面看代码:
function executeScript(html){
reg = /
//对整段HTML片段按<\/script>拆分
htmlBlock = html.split("<\/script>");
for (i in htmlBlock){
blocks;//匹配正则表达式的内容数组,blocks[1]就是真正的一段脚本内容,因为前面reg定义我们用了括号进行了捕获分组
if (blocks = htmlBlock[i].match(reg)){
//清除可能存在的注释标记,对于注释结尾-->可以忽略处理,eval一样能正常工作
code = blocks[1].replace(/