繁体   English   中英

在使用 jquery .load() 加载的 html 范围内未定义全局函数

[英]Global function is undefinded in scope of html loaded using jquery .load()

我有 html :

<script src="/js/app.js"></script>

在 app.js 我有函数 foo:

function foo() { console.log("foo") }

然后我有 jquery 并使用它的方法 .load 加载外部 html 内容:

$("#modal-wrapper").load("/modal_dialog_ajax", function () {
   // Some logic
});

/modal_dialog_ajax输出如下所示:

<div>Some markup</div>
<script type="text/javascript">
 foo();
</script>

Javascript 执行得很好,但在此 html 的范围内未定义foo()调用。

为什么Js里面的ajax加载的html内容看不到页面上定义的全局函数?

使用 window 全局对象解决了这个问题:

function foo() { console.log("foo") }
window.foo = foo;

然后将其称为

window.foo();

但不确定这是一个好习惯。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM