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(/
ajax获取的数据中包含html代码,执行ajax返回数据中包含的script脚本代码相关推荐
- Java黑皮书课后题第8章:*8.13(定位最大的元素)编写下面的方法,返回二维数组中最大元素的位置。返回值是包含两个元素的一维数组,这两个元素表示二维数组中最大元素的行下标和列下标
*8.13(定位最大的元素)编写下面的方法,返回二维数组中最大元素的位置.返回值是包含两个元素的一维数组,这两个元素表示二维数组中最大元素的行下标和列下标 题目 题目描述与运行示例 破题 代码 题目 ...
- 关于Laravel中使用response()方法调用json()返回数据unicode编码转换的问题解决
关于Laravel中使用response()方法调用json()返回数据unicode编码转换的问题解决 参考文章: (1)关于Laravel中使用response()方法调用json()返回数据un ...
- 【iMessage苹果推信家庭推】位置推通过苹果实现iMessage群发的Apple script脚本代码如下: tell application “Messages” set csvDatator
推荐内容IMESSGAE相关 作者✈️@IMEAE推荐内容 iMessage苹果推软件 *** 点击即可查看作者要求内容信息 作者✈️@IMEAE推荐内容 1.家庭推内容 *** 点击即可查看作者要求 ...
- spring返回数据使用ajax,【spring 后台跳转前台】使用ajax访问的后台,后台正常执行,返回数据,但是不能进入前台的ajax回调函数中...
问题1: 使用ajax访问的后台,后台正常执行,并且正常返回数据,但是不能进入前台的ajax回调函数中 问题展示: 问题解决: 最后发现是因为后台的方法并未加注解:@ResponseBody,导致方法 ...
- python获取json中的某个值_json文件返回数据中提取数据的方法(JSON数据取其中某一个值的方法)...
比如下面的案例是,取店铺名称 接口返回数据如下:{"Code":0,"Msg":"ok","Data":{"S ...
- ajax调用后台java方法,jquery ajax再次封装,前台调用后台java方法直接返回数据
一,前台js部分代码 /** * bean参数格式:类全限定名.方法名 opt参数格式:键值对 handleResponse:会function类型参数包含一个参数data,为后台返回json数据 ...
- 使用charles修改服务器返回数据,charles_01_打断点修改接口请求返回数据
前言 测试过程中,为了模拟某场景测试,经常需要修改接口请求或者返回数据.可通过抓包工具打断点,实现模拟测试场景.常用的抓包工具charles和fiddler均可打断点mock数据.由于小编安装了cha ...
- 关于使用Java后台导入excel文件,读取数据后,更新数据库,并返回数据给到前端的相关问题总结
在之前的项目中,使用到了Java后台读取excel文件数据的功能点,本想着该功能点已经做过了,这一类的应该都大差不离,不过在刚结束的一个项目中,现实给我深深的上了一课,特此编写此片博客,以作记录,并给 ...
- maxN - 返回数组中N个最大元素 minN - 返回数组中N个最小元素
从提供的数组中返回 n 个最小元素.如果 n 大于或等于提供的数组长度,则返回原数组(按降序排列). 结合使用Array.sort() 与展开操作符(...) ,创建一个数组的浅克隆,并按降序排列. ...
最新文章
- sqlite 统计每张表的记录数_Excel单页式人事管理表,档案记录,自带查询统计,简单实用...
- 国内开源社区巨作AspectCore-Framework入门
- ESP8266 wifi钓鱼
- MFCWinInet学习
- ?php echo $this_php如何使用echo输出常量+变量?
- 数学公式【(1+1+2+1+2+3+1+2+3+4。。。)⇒n*(n+1)*(n+2)/6】
- MySql数据类型分析(字符类型) Part4
- Apache RewriteCond on HTTP_COOKIE
- Matlab调用系统命令行利用Internet Download Manager(IDM)实现批量下载
- 试题 基础练习 圆的面积
- 详解语言模型NGram及困惑度Perplexity
- php的优秀案例,单页Web设计优秀案例_php
- HostGator 評價 – 優異的運行時間與支持一鍵安裝 WordPress,內含 4 折 60% 折扣優惠購買連結! - TechMoon 科技月球...
- python Deformation Transfer for Triangle Meshes
- apache 在windows下无法启动的一个错误
- 这是一篇理工男写的口红科普文
- 人脸识别之insightface开源代码使用:训练、验证、测试(3)
- 侯捷老师整理||IT专业术语中英对照表
- 构建《安全经济优质型电网》与实施电网经济运行
- 品牌笔记本正规与非正规维修上的差别