如果AJAX加载的数据是一个HTML片段,而且这个HTML片段还包含脚本<script>块,那么在你把这数据
xmlHttp.responseText用innerHTML方法插入到当前文档一个元素中,你会发现AJAX加载回来的脚本根本没有执行。这是
AJAX开发中很常见的问题,如果你不是一直在用JavaScript框架做开发,相信你早就发现这个问题了。
来源:http://www.iteye.com/problems/2619
解决方法:
ajax.php
<?php
// php 代码
?>
<script src="a.js" type="text/script">
/*
或者
<script>
alert('success.');
</script>
*/
<div>
<!-- html 代码-->
</div>
ajax.js
if (xmlHttp.readyState==4)
{
var html = xmlHttp.responseText;
var hd = document.getElementsByTagName("head")[0];
var re = /(?:<script([^>]*)?>)((\n|\r|.)*?)(?:<\/script>)/ig;
var srcRe = /\ssrc=([\'\"])(.*?)\1/i;
var typeRe = /\stype=([\'\"])(.*?)\1/i;
var match;
while(match = re.exec(html)){
var attrs = match[1];
var srcMatch = attrs ? attrs.match(srcRe) : false;
if(srcMatch && srcMatch[2]){
var s = document.createElement("script");
s.src = srcMatch[2];
var typeMatch = attrs.match(typeRe);
if(typeMatch && typeMatch[2]){
s.type = typeMatch[2];
}
hd.appendChild(s);
}else if(match[2] && match[2].length > 0){
if(window.execScript) {
window.execScript(match[2]);
} else {
window.eval(match[2]);
}
}
}
document.getElementById("area").innerHTML = xmlHttp.responseText;
}
太感谢了!
分享到:
相关推荐
在下面的例子中,假设变量responseText就是AJAX加载的HTML片段数据,其中包含脚本弹出一条消息,用innerHTML方法插入ID为ajaxData的DIV中,你可能期望看到弹出那个消息框,结果你发现没有,问题就是这样。...
这个"个人JavaScript脚本收藏"压缩包文件显然包含了作者收集的各种JavaScript代码片段和特效,旨在帮助开发者快速实现特定的功能或者提升网页的用户体验。 1. **基础概念**:JavaScript基于ECMAScript规范,它主要...
JavaScript脚本集合通常包括各种常用的、实用的代码片段,帮助开发者快速实现特定功能,提高开发效率。以下是一些JavaScript脚本集合中的核心知识点: 1. **基础语法**:JavaScript的基础包括变量声明(var, let, ...
它通过在HTML中插入`<script>`标签来请求数据,因为`<script>`标签不受同源策略限制。 ### 5. jQuery和Ajax库 jQuery简化了Ajax的使用,提供了$.ajax()、$.get()、$.post()等函数,使得Ajax更加易用。其他如axios...
在这个名为“网页常用jsp脚本”的压缩包中,包含了二百多个常用的JSP脚本代码片段,这些都是为了提高网页开发效率和性能而设计的。 首先,我们需要了解JavaScript的基本概念。JavaScript是一种解释型、轻量级、面向...
在提供的"js脚本集合"中,包含了100多个经典常用的JavaScript脚本。这些脚本可能是用于解决各种常见问题的函数库、工具集或者特定功能的实现,例如页面动态效果、表单验证、图片轮播、时间日期处理、Ajax请求等。...
标题中的“自我介绍与javascript脚本”表明了这个压缩包包含两部分主要内容:个人的自我介绍和JavaScript编程的练习或示例。JavaScript是一种广泛应用于网页和网络应用开发的编程语言,它主要负责网页的交互性,使...
JavaScript脚本是网页开发中的重要组成部分,主要用于实现交互性和动态效果。这个压缩包包含了342个JavaScript编码实例,虽然可能是一些过期的资源,但它们仍然能为我们提供宝贵的编程经验,帮助我们理解JavaScript...
这个"常用javascript脚本,网站开发人员的手册"显然是一份对于JavaScript开发者至关重要的资源,它可能包含了各种实用的代码片段、技巧以及最佳实践。 JavaScript是一种解释型的、面向对象的、弱类型的脚本语言,它...
综上所述,通过结合JavaScript切片技术与脚本执行引擎的互操作能力,可以有效地解决AJAX框架中URL解析的问题,进而实现更为强大的网络爬虫功能。这种方法不仅能够提高爬虫的工作效率,还能够显著提升其在面对现代Web...
这是因为默认情况下,Ajax加载的HTML片段被视为静态内容,浏览器不会执行其中的脚本。本文将详细讲解这个问题的解决方法。 首先,我们要了解为什么动态加载的JavaScript不被执行。当HTML通过Ajax加载时,浏览器并不...
1. **JavaScript**:客户端的脚本语言,用于创建和执行 Ajax 请求。在JavaScript中,XMLHttpRequest对象是实现Ajax的核心,它允许我们向服务器发送HTTP请求,并处理返回的数据。 2. **创建 XMLHttpRequest 对象**:...
2. **JavaScript脚本**:定义具体的Ajax请求逻辑,包括数据打包和发送方式。 3. **服务器端处理**:处理Ajax请求,执行相应的业务逻辑,并返回响应数据。 4. **响应处理**:解析服务器返回的数据,并根据需要更新...
3. **scripts**:此文件夹可能包含JavaScript脚本,包括实现Ajax请求和DOM操作的代码。 在`tabbed.html`中,开发者通常会使用`<div>`标签创建标签页容器,每个标签页是一个子`<div>`,并且设置相应的ID或类名以便...
在这个场景中,JavaScript用于创建和触发AJAX请求,以及处理服务器返回的结果。 3. **客户端验证**:客户端验证是Web应用程序中的一种常见实践,用于在用户提交数据之前检查其有效性。这可以通过JavaScript实现,...
// 脚本加载完成后执行的回调 }); ``` **三、jQuery与Struts2的Ajax整合** 在Struts2框架中,我们可以利用jQuery的Ajax功能进行数据交互。Struts2提供了JSON结果类型,方便与前端的Ajax请求配合。首先,你需要...
通过一个简洁易用的Ajax类,开发者可以方便地在前端HTML表单中触发Ajax请求,并在后端PHP脚本处理请求后,使用JavaScript更新页面内容,提高用户体验,避免了传统页面刷新带来的延迟感和打断感。在实际应用中,这种...
PHP(Hypertext Preprocessor)是一种广泛使用的开放源代码的脚本语言,尤其适用于Web开发,可以嵌入到HTML中去。 在这个"简单Ajax与PHP结合"的教程中,初学者将了解到如何利用Ajax和PHP协同工作,以实现动态网页...
1. `index.html` - 主页面,包含基本的HTML结构和必要的JavaScript脚本。 2. `style.css` - 页面样式定义。 3. `script.js` - 包含Ajax函数和其他JavaScript逻辑。 4. `jsp`目录 - 存放所有JSP文件,如`login.jsp`, ...