2

我想使用 JSON-P 在我的网页上加载我的 Google 日历提要。为了使页面上的主要内容加载更快,我仅在页面加载后将 JSON-P 的脚本标签注入到 head 标签中。Google Calendar API 返回一个带有回调函数的脚本,请参见此处的示例。

是否可以避免使用全局函数作为回调函数?我想将注入标签和解析结果的所有必要代码封装在一个封装函数中。

4

2 回答 2

2

您可以做的是使用应用程序所在的全局方法。

MYAPP.method({...});
于 2012-11-22T19:15:29.527 回答
1

不,当您使用 JSON-P 调用时,服务器会返回如下内容:

callback({...})

在您使用<script>element 引用此 JSON-P 调用 URL 后,浏览器将下载 JavaScript 代码并执行它,这意味着callback使用服务器提供的数据执行您的函数。

如果您不希望回调函数污染您的全局命名空间,只需在回调函数中添加一些命名空间,例如com.mycode.callback.

使用 JSON-P 的最大优势是它可以在浏览器中绕过同源策略,并且您可以轻松地使用来自其他域的数据。

于 2012-11-22T19:30:40.233 回答