ajax加载的脚本无法访问全局变量

时间:2015-05-16 18:50:53

标签: javascript jquery html ajax

索引。的 HTML

<script>
var foo = 1;
</script>

使用AJAX将 html 页面多次加载到页面中:

交。的 HTML

<script>
if (foo === 1)
{
// do something
}
// Error: foo is not defined
</script>

Foo只是一个变量,如果浏览器具有AJAX功能,则确定该变量。由于脚本是通过AJAX加载的,这意味着浏览器能够生成XMLHTTPRequests。

我宁愿不必更改post.html和index.html的内容。

在将post.html加载到index.html之前,有没有办法在post.html中设置foo = 1

(anonymous function)    @   VM10881:2
jQuery.extend.globalEval    @   app.js:329
jQuery.fn.extend.domManip   @   app.js:5436
jQuery.fn.extend.after  @   app.js:5245
verifyPage  @   app.js:9319
completed   @   app.js:9289
onComplete  @   app.js:9250
jQuery.Callbacks.fire   @   app.js:3100
jQuery.Callbacks.self.fireWith  @   app.js:3212
done    @   app.js:8265
jQuery.ajaxTransport.send.callback

1 个答案:

答案 0 :(得分:0)

尝试这样的事情(来自index.htm):

$.ajax({
    url: 'post.htm',
    dataType: 'html'
}).done(function(html){

    var $html = $(html),
        script = '<script>var foo=1;</script>';

   $html.find('head').prepend(script);

   $('body').append($html);
});