javascript - 在编译的 javascript 中触发回调

标签 javascript google-closure-compiler google-closure

我遇到了一个具有挑战性的问题。我正在使用 Blogger JSON API 获取 JSON 数据并显示在页面上。通常它非常简单:

    <script src="http://blog-name.blogspot.com/feeds/posts/default?alt=json-in-script&amp;callback=renderPost&amp;max-results=4"></script>

您将此脚本嵌入到请求数据的页面上,并将数据对象传递给 JavaScript 回调(在本例中,回调称为 renderPost)。

问题是我正在使用 Closure 编译器来编译 JS 的其余部分。因此,renderPost 被混淆了。

你会如何用 JavaScript 来模仿这种行为?您可以使用 AJAX 请求来获取 JSON 对象吗?

部分问题是我真的不知道 Blogger 在这里做什么,因此对此进行解释也会很有帮助。

最佳答案

Closure compiler ,您可以按如下方式导出变量:

window['varname'] = varname;

例如:

// ==ClosureCompiler==
// @compilation_level ADVANCED_OPTIMIZATIONS
// @output_file_name default.js
// ==/ClosureCompiler==
window['renderPost'] = renderPost;
function renderPost(name) {
    return prompt('', '');
}

编译为:

window.renderPost=a;function a(){return prompt("","")}a();

而不是(当省略 window['renderPost'] = renderPost 时):

prompt("","");

关于javascript - 在编译的 javascript 中触发回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9437444/

相关文章:

javascript - 导入的JS文件-错误-未声明[JSC_UNDEFINED_VARIABLE]变量分页

javascript - 关闭 - 库未正确加载

javascript - 使用@typedef 定义特定的函数类型

javascript - 如何从 SVG 文件制作可点击的 map ?

javascript - 具有大量依赖项的 JavaScript 前端的 Docker 构建过程

javascript - 播放器未更新

javascript - Google 关闭外部依赖项

javascript - 是否有适合 Javascript 1.7 尤其是 Firefox 扩展的编译器/压缩器库?

javascript - 为什么 Closure 在使用 function.apply 时不对参数进行类型检查?

javascript - 子类如何获取父类(super class)的实例变量?