`

执行ajax返回的script代码

阅读更多

晕死,自已在这里面加个表面就把页面给变了不成样子了,重发下。

 

问题:在使用ajax调用页面时,另一个页面中script中的ready并不执行;
分析:页面在打开时只加载一次script,所以利用ajax返回的页面中ready并不执行;
解决:

1 、取返回页面内容中的 js 内容

function getJavaScript(data) {

    var script, scripts;

    scripts = [];

    var regexp = /]*>([\s\S]*?)<\/script>/gi;

    while ((script = regexp.exec(data))) {

        scripts.push(script[1]);

    }

    return scripts;

}
 



2 、处理 js

function evalJavaScript(scripts) {

    scripts = scripts.join('\n');

     if (scripts)

        (window.execScript) ? window.execScript(scripts) : window.setTimeout(

                scripts, 0);

    return true;

}
 

 

 

分享到:
评论
7 楼 xukaipeng 2010-05-26  
今天看到一个帖子是这样描述的:


不过现在都不建议用eval了,解析JSON,可以用这个
function jsonDecode(data){
    return (new Function("return " + data))();
}

其他要想实现类似的eval的功能,一般都是在DOM中创建一个script节点,然后script.text = data;

jQuery1.4中就是如此,其他好几种Javascript框架都是这么做的。
6 楼 thoughtfly 2010-05-25  
sixwinds 写道
但是我试验过返回一段html代码 里面带有script 用innerHTML赋值之后那段script还是能执行的


我不是说代码不能执行,而是说页面不会再次初始化加载,这样像返回中的onload之类的代码就没办自动执行了。
5 楼 thoughtfly 2010-05-25  
lovself 写道
楼主有遇到这样的情况吗?ajax返回代码中有外部js文件的引用,请问这个怎么处理啊


你有没有发现,我的执行代码里是先用正则取出来script标签里的代码再执行的,这样的话,你那个引用外部的js是肯定没法运行了,如果是我的话,我肯定会在头文件中把所要的所有js全部分引入,反正都是引用的,这样就没你的麻烦了。
4 楼 sixwinds 2010-05-25  
但是我试验过返回一段html代码 里面带有script 用innerHTML赋值之后那段script还是能执行的
3 楼 xdsnet 2010-05-22  
我认为:
如果在ajax中需要临时取得script,来进行交互,可以直接构建一个script对象来获取返回,在返回中有script真实执行代码,以此来完成执行。
如:
在body的最后插入一个script对象,其中script对象有顶层直接执行代码,这些代码就可以执行了。
2 楼 lovself 2010-05-22  
楼主有遇到这样的情况吗?ajax返回代码中有外部js文件的引用,请问这个怎么处理啊
1 楼 hommy8 2010-05-21  
这么实用的技巧,为什么没有人来顶?
赞一个,不过暂时没有时间试试。。以后测试一下

另外,估计LZ肯定很少发帖子,代码搞到一边去了

相关推荐

    处理ajax返回的js代码

    标题 "处理ajax返回的js代码" 涉及的核心知识点是使用Ajax技术动态获取并执行JavaScript代码。Ajax(异步JavaScript和XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器交换...

    解决ajax返回innerHTML中javascript不能运行问题

    解决 Ajax 返回 innerHTML 中 ...解决 Ajax 返回 innerHTML 中 JavaScript 不能运行问题的关键是将 JavaScript 代码从 Ajax 返回的数据中提取出来,并将其添加到 `<head>` 中,让浏览器能够正确地解析和执行。

    传志博客ajax代码

    在"传志博客ajax代码"中,我们可以预期找到的是一个关于Ajax实现的示例或教程。这个代码可能包括了如何使用JavaScript创建Ajax请求,处理服务器响应,并在不刷新页面的情况下更新网页内容的各种实例。下面将深入讲解...

    Ajax示例代码

    `success`回调函数将在请求成功时执行,参数`msg`接收服务器返回的数据。 5. **DOM操作**:在`success`回调中,首先获取`div1`当前的HTML内容,并在末尾添加一个换行符。接着,将新获取的数据`msg`追加到`div1`的...

    ajax经典源代码

    2. **打开连接**:使用XMLHttpRequest对象的`open()`方法,指定请求类型(GET或POST)、URL以及是否异步执行。 3. **设置请求头**:对于POST请求,通常需要设置`Content-Type`来指定发送的数据格式。 4. **发送...

    AJAX异地局部代码

    **异步特性**:AJAX的核心在于其异步性,这意味着在发起请求后,浏览器不会等待服务器的响应,而是继续执行后续的JavaScript代码。当服务器返回数据时,JavaScript会接收到一个回调函数,此时再处理返回的数据。 **...

    在外部方法使用Ajax请求返回的数据

    这种方式使代码更易读,尤其是当有多个异步操作需要串行执行时。 总之,将Ajax请求的数据应用于外部JavaScript脚本涉及到理解Ajax的基本用法、数据处理、数据传递机制(如函数参数、全局变量、事件触发或Promise)...

    jquery与ajax调用,有代码 , 有说明,使ajax调用简单

    3. **异步与同步**:默认情况下,Ajax请求是异步的,但通过设置`async`选项为`false`,可以执行同步请求。 4. **超时**:`timeout`选项可以设置请求的超时时间,超时后会触发`error`回调。 5. **跨域请求**:`...

    jQuery右侧边栏二维码QQ客服返回顶部代码

    10. **代码组织和优化**:为了保持代码的整洁和可维护性,建议将jQuery代码封装在自执行匿名函数中,避免全局变量污染。同时,可以使用模块化技术,如AMD(Asynchronous Module Definition)或CommonJS,来更好地...

    关于Ajax的主要代码内容

    此外,还定义了另一个名为`doAjax`的函数,用于执行Ajax请求。 ```html <script language="javascript"> var xmlhttp; // XMLHttpRequest对象实例 function checkUserExists() { var f = document.form1; var ...

    ThinkPHP Ajax 实例源代码

    该函数会在请求成功时执行,并接收服务器返回的数据以及状态码作为参数。 - **DOM操作**: 使用原生JavaScript对DOM元素进行操作,如获取输入框的值或设置元素的内HTML。 ##### 3.2 Public/loginJquery.html 模板...

    AJAX in Action 源代码

    "AJAX in Action" 是一本专门探讨AJAX技术的书籍,源代码的提供为读者提供了实践和学习AJAX的宝贵资源。** 在深入讲解AJAX的知识点之前,让我们先了解一下AJAX的基本组成部分: 1. **XMLHttpRequest对象**:这是...

    ajax实现动态从数据库模糊查询显示到下拉框中(ajax方法返回Dataset的例子

    1. 在服务器端创建一个能够处理Ajax请求的方法,如上述的`GetFuzzyData`,该方法执行SQL查询并返回Dataset。 2. 在客户端编写JavaScript代码,监听输入框的事件,使用Ajax调用服务器端方法。 3. 在Ajax的`success`回...

    .net下最简单的ajax示例

    服务器端的`GetServerData`方法会被执行,然后返回一个字符串。这个字符串随后会在页面上显示出来,而无需刷新整个页面。 总结起来,这个.NET下的简单AJAX示例展示了如何使用JavaScript和C#协同工作,以实现页面...

    ajax获取单独页面

    <script src="ajaxtab.js"></script> <script> $(function() { $('.tabs').ajaxtab({ defaultTab: 0, // 默认选中的标签页 urlDataKey: 'data-url' // 数据URL的属性名 }); }); </script> ``` 这个示例中,`...

    Ajax入门教程(通过例子讲解)

    3. JavaScript:JavaScript是实现Ajax的核心,它负责创建和控制Ajax请求,处理服务器返回的数据,并更新网页内容。例如,`document.getElementById()`方法用于获取HTML元素,`window.id.value`用于获取或设置元素的...

    jquery ajaxfrom表单提交代码

    现在,我们可以编写JavaScript代码来使用`ajaxForm()`。在文档加载完成后,找到表单元素并绑定`ajaxForm()`方法: ```javascript $(document).ready(function() { $('#myForm').ajaxForm({ beforeSubmit: ...

    ajax 异步传输php代码

    这个文件很可能是用于封装Ajax请求的JavaScript类,以提高代码复用性和可维护性。通常会包含以下功能: - 初始化XMLHttpRequest对象 - 提供`get`和`post`方法,用于发送GET和POST请求 - 错误处理和状态检查 - 数据...

    jquery ajax实例点击按钮触发Ajax loading

    现在,编写JavaScript代码来处理按钮点击事件,并执行AJAX请求: ```javascript $(document).ready(function() { $("#ajaxButton").click(function() { // 显示加载指示器 $("#loadingIndicator").show(); // ...

    AJAX jsonp应用,页面配置以及后台代码

    在这个例子中,服务器会返回类似`displayWeather({"city":"北京","temperature":"26°C","condition":"晴天"})`这样的JavaScript代码,浏览器执行这段代码,将天气信息传给`displayWeather`函数进行展示。...

Global site tag (gtag.js) - Google Analytics