-3

我无法在我的 option.html 中为我的 google-chrome 扩展程序添加个人 javascript 文件。

我已将此行添加到我的 options.html 中:

<script type="text/javasctipt" src="/js/content/toto.js"></script>

并且此文件中描述的对象 $.toto 是无法访问的。

我想知道是否可以添加个人 js 文件以及如何或是否必须在 options.js 中执行所有操作?

提前感谢您的回答。

这是代码的一部分,因为项目已经很大了:

选项.html:

<!DOCTYPE html>
<html lang="fr">
  <body>
    <script type="text/javascript" src="/js/lib/jquery-1.8.3.min.js"></script>
    <script type="text/javascript" src="/js/lib/sprintf-0.6.js"></script>
    <script type="text/javascript" src="/js/lib/bootstrap/bootstrap-modal.js"></script>
    <script type="text/javascript" src="/js/shared/constant.js"></script>
    <script type="text/javascript" src="/js/shared/storage.js"></script>
    <script type="text/javasctipt" src="/js/content/toto.js"></script>
    <script type="text/javascript" src="/js/content/messages.js"></script>
    <script type="text/javascript" src="/js/content/debug.js"></script>
    <script type="text/javascript" src="/js/content/form.js"></script>
    <script type="text/javascript" src="/js/content/base.js"></script>
    <script type="text/javascript" src="/js/content/options.js"></script>

  </body>
</html>

选项.js:

$.options = $.extend({}, $.base, {
    ready: function() {

       // onMessage                                                                             
       chrome.extension.onMessage.addListener(this.onMessage);

       // init events                                                                           
       $("#logout_btn").live("click",function() {
           $.options.logout();
       });

       // init ui                                                                               
       $.toto.initialize();
       this.displayCorrectContext();
       this.initMailPrescrip();
    }
});

toto.js:

$.toto = $.extend({}, $.base, {

    TAG: "MESSAGES",

    ready: function() {
        $("[title-message]").each(function() {
            var txt = chrome.i18n.getMessage($(this).attr("title-message"));
            $(this).attr('title', txt);
        });
        $("[data-message]").each(function() {
            var txt = chrome.i18n.getMessage($(this).attr("data-message"));
            $(this).html(txt);
        });

    },

    log: function(message) {
        $.base.log($.messages.TAG,message);
    }

});
4

2 回答 2

1

像这样使用 .ready 事件。

 jQuery(document).ready(function(){

  // jquery function code

 });
于 2013-06-03T11:39:09.370 回答
0

在 manifest.json 中,尝试将其添加到“scripts”行中,如下所示:

"app": {
  "background": {
  "scripts": ["exampleReference1.js", "exampleReference2.js", "toto.js"],
  "transient": true
  }
},

希望它有效。

于 2013-06-05T12:58:00.250 回答