将JS文件包含在Crossrider项目中

时间:2015-12-09 18:02:44

标签: javascript cross-browser crossrider

我正在进行Crossrider扩展,我是扩展开发的新手。我基于演示创建了基本项目,甚至还包括用于测试的Jasmine。 不幸的是,我坚持创建自己的资源。

这是我的调试项目的结构:

resources\
    lib\
    spec\
        test-runner.js
    src\
        js\
            App.js
        popup.html
    background.js
    extension.js

测试runner.js:

(function() {
    appAPI.resources.includeCSS('lib/jasmine/jasmine.css');
    appAPI.resources.includeJS('lib/jasmine/jasmine.js');
    appAPI.resources.includeJS('lib/jasmine/jasmine-html.js');
    appAPI.resources.includeJS('lib/jasmine/boot.js');

    $('body').html('');

    appAPI.resources.includeJS('spec/App-spec.js');
})();

这就是我如何包含这个文件:

appAPI.resources.includeJS('spec/test-runner.js');

一切正常。

当我尝试包含App.js时,问题就开始了。我读到应该这样做:

 appAPI.resources.addInlineJS('src/js/App.js');

但它不起作用。

这是我的App.js:

var App = {
    init: function() {
        console.log('App initialized');
    }
};

$(document).ready(App.init);

是否可以在 extension.js background.js 中包含资源文件,以及如何将更多js文件添加到项目资源中?

1 个答案:

答案 0 :(得分:1)

如果我理解您要正确实现的目标(即将资源脚本添加到扩展代码中),我认为您有scope问题。

appAPI.resources.addInlineJS将资源脚本添加到 HTML页面范围,一旦添加,扩展页面范围就无法访问该代码。要将资源脚本添加到您的扩展程序代码(例如 extension.js 代码),请使用appAPI.resources.includeJS,如下所示:

  error C2065: "IDBConnector": undeclared identifier
  error C2923: "std::shared_ptr": "IDBConnector" invalid template argument for the _Ty-Parameter

[披露:我是Crossrider员工]