利用ajax获取到的网页源码不能执行js代码

今天觉得我的博客中加载腾讯微博的速度很慢,所以就想改写为js,本来以为直接新建一个页面,把获取函数移到新的页面中,原来的页面只要使用xmlhttp去GET一下,然后把div的innerhtml属性等于为xmlhttp.responseText就ok了。
没有想到的是从responseText中获取到的文本不仅包括了div等网页内容个,而且包括js代码。这下就傻了,js代码不运行的。
网上找了不少资料有个人写了个js库的但是还是不好用啊,后来发现原来js和ajax要同步起来必须这样是全部是html码或者全部是js码。也就是说当全部是html码的时候可以用innerhtml直接指向返回的text,而当返回的是js码的时候,必须用eval()使其能够运行起来。

当然也有第三种可能,把其中的js代码剥离出来,你干么,当然不干!

想到这里就只有两种方案解决了,要么php输出的都是js代码,要么php输出的是html,把js独立放出去。

思考再三,全部写成js代码有点苦难,让php输出js代码,js代码中再输出html码,光那些单双引号都搞死人了。

最后没办法,把js代码剥离出来了,然后用了n个hidden的元素,把html中输出的值保存下来,让js去进行调用。看来以后写代码最好是js和html剥离,否则转到ajax中就有点被动,普通的还好只要直接include进来就ok。至于趋于用纯js还是用纯html再加js这个问题要再考虑考虑。

转载于:https://www.cnblogs.com/wangchuang/p/3325457.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值