我有这个 js 文件从某个域提供服务foobar.com
at http://foobar.com/static/js/main.js:
$(document).ready(function() {
function foobar(bar){
$.ajax({
url: "/site/foo/",
data: {'foo':bar},
dataType: "jsonp",
crossdomain: !0,
success: function (data) {
alert(data);
},
error: function () {
}
})
}
});
On barfoo.com
在某些网址上,我有这样的内容:
<script src='http://foobar.com/static/js/main.js' type='text/javascript'></script>
<script type='text/javascript'>foobar('123456')</script>
当我点击该网址时:它说
Uncaught ReferenceError:foobar is not defined (anonymous function)
如何访问其他域的功能?
您已在“ready”处理程序中定义了“foobar()”。因此,它是该函数中的局部变量,并且在函数外部不可见。
您可以将其添加到“就绪”处理程序的末尾:
window['foobar'] = foobar;
然后它就会在全球范围内可见。
顺便说一句,这是可以咬人的东西jsfiddle http://jsfiddle.net因为它(默认情况下)会将代码包装在“加载”处理程序中。因此,如果您从包含在<head>
,在该上下文中是全局的函数最终在小提琴中不是全局的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)