六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 37|回复: 0

ajax加载与js

[复制链接]

升级  2.8%

158

主题

158

主题

158

主题

进士

Rank: 4

积分
514
 楼主| 发表于 2013-2-7 14:45:48 | 显示全部楼层 |阅读模式
当你写了一个内弹窗口,
用ajax获取远程的html.
然后直接用innerHTML,插到网页中.

这时候你想针对加载内容运行一段js,
但是innerHTML中插入的似乎不会被执行,
怎么办?

当然,你可以用一个统一的js文件包含所有的函数,预先加载,
但是,这样维护起来很麻烦,由其不止你一个人写代码的时候

再去ajax加载一段js,Oh,好麻烦.

还是用我这个函数吧

传入htm

返回值.htm 就返回不含js的htm代码
返回值.js 就执行htm中的js


需要注意的是,要先将htm用innerHTML插入到网页中再去运行js脚本,否则getElementById是不生效的

最后不要忘记setTimout 0 的小技巧
setTimeout('document.getElementById("signin_password").focus()',0)
____________________________________________
function js_parser(htm){
   var tag="script>",begin="<"+tag,end="</"+tag,pos=pos_pre=0,result=script="";
    while(
        (pos=htm.indexOf(begin,pos))+1
    ){

       result+=htm.substring(pos_pre,pos);

        pos+=8;

        pos_pre=htm.indexOf(end,pos);

        if(pos_pre<0){

            alert("标签未闭合");

            break;

        }

        script+=htm.substring(pos,pos_pre)+";";

        pos_pre+=9;

    }

    result+=htm.substring(pos_pre,htm.length);

   

    return {

        htm:result,

        js:function(){eval(script)}

    };

}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表