ajax获取的数据中包含html代码,执行ajax返回数据中包含的script脚本代码

ajax虽然很方便,提升了我们的交互体验,但是它也有可恨之处,就是ajax请求得到的数据中如果包含脚本代码,比如说请求得到的是一块html内容,我们把这块html内容插入到网页中的某个地方,但是其中明明存在的脚本却不能得以运行,如果你听不懂我在说什么,说明你还不懂ajax或者用得少没遇到这种现象。通常来讲,页面中包含的脚本形式无非两种:

第一种:

var _hmt = _hmt || [];

(function() {

var hm = document.createElement("script");

hm.src = "//hm.baidu.com/hm.js?d9369436322d94b2213525fa8711e642";

var s = document.getElementById("script");

s.appendChild(hm);

})();

第二种:

但是他们都不执行,这该如何是好?为了解决这个千古难题~我专门写了个函数攻破这个瓶颈!!!使得无论如何怎么ajax,效果都跟刷新页面也一样,所有该有的script执行环境都有了。函数如下:

function executeScript(html){

var reg = /

var htmlBlock = html.split("<\/script>");

var blocks,srcBlock,script;

var scriptContent=document.getElementById("script")||document.body;

for (var i in htmlBlock){

if (blocks = htmlBlock[i].match(reg)){

var matchAll=blocks[0];

var srcReg=/src=[\'\"](.*?)[\'\"]/i;

if(srcBlock=matchAll.match(srcReg)){

script=document.createElement("script");

script.src=srcBlock[1];

scriptContent.appendChild(script);

}else{

var code = blocks[1].replace(/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值