Javascript AJAX包含文件以及eval

Tom*_*Tom 4 javascript ajax scope eval include

假设我有

1)HTML文档.

2)这个HTML文档加载Javascript文件"code.js",如下所示:

<script src="code.js">
Run Code Online (Sandbox Code Playgroud)

3)用户点击"code.js"中运行"fetchdata"功能的按钮,

4)"fetchdata"函数如下所示:

var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState==4) {
        myjsdata = xmlhttp.responseText;
    }
}
xmlhttp.open("GET", 'http://www.example.com/data.js', false);
xmlhttp.send(null);
Run Code Online (Sandbox Code Playgroud)

...

现在我如何成功完成以下操作:

我想以某种方式插入/评估我的Javascript,因此"code.js"中的所有函数(包括"fetchdata"和上面/下面定义的函数)都可以访问"中的数据(结构,声明,预先计算的数据值等)". data.js".

(如果这是可能的,那么我会等到加载实际的JS数据文件,直到用户明确请求它为止.)

mow*_*ker 10

jQuery总能拥有一切:

http://api.jquery.com/jQuery.getScript/

从url加载javascript文件并在全局上下文中执行它.

编辑:糟糕,没有看到你没有使用jQuery.每个人都在使用jQuery ...

做就是了:

var scrpt = document.createElement('script');
scrpt.src='http://www.example.com/data.js';
document.head.appendChild(scrpt);
Run Code Online (Sandbox Code Playgroud)

  • "步骤1:如果您正在使用jQuery,请调用getScript函数.步骤2:如果您不使用jQuery,请开始使用jQuery并返回步骤1". (3认同)

Jos*_*eph 5

我想你应该看看这个网站

这个站点讨论了动态加载和回调(带有示例) - 在加载后可以在加载的脚本中调用函数.没有jQUery,只是纯粹的JS.