【发布时间】:2015-03-21 18:06:01
【问题描述】:
在我的 main.js 文件中,我有一个包含 base.js 文件的 PageMod:
pageMod.PageMod({
contentScriptFile: ["./base.js"]
我的 base.js 文件中有一个函数
function setupPayment(){ /* DO STUFF HERE */ }
在我的 base.js 文件中,我还加载了其他 JS 文件
$.getScript("https://checkout.stripe.com/checkout.js", function(){
$.getScript( self.options.stripe );
});
在我的 stripe.js 文件中,我正在尝试调用我的 base.js 文件中的 setupPayment 函数
var yearhandler = StripeCheckout.configure({
key: "pk_live_...",
image: "image.png",
name: "SHINE",
description: "Subscription",
panelLabel: "Subscribe",
allowRememberMe: false,
token: function(token) {
plan = "yearly";
setupPayment(token,plan);
}
});
但是 setupPayment 返回 undefined。
在做了一些测试之后,似乎通过 $.getScript 包含的任何脚本都无法访问我的 base.js 内容脚本中的任何函数?有没有办法在我加载的所有其他脚本文件中使我的 base.js 内容脚本中的函数全局化?
感谢您的帮助!
编辑:setupPayment() 必须在 base.js 文件中的原因是它可以与 main.js 文件通信并存储一些信息。
【问题讨论】:
-
确保你的函数是 jquery 函数。在 document.ready 内部,而不是 Javascript 函数。还要在 document.ready 和所有脚本开始之前声明你的变量。
标签: javascript jquery firefox firefox-addon firefox-addon-sdk