-3

google-chrome 拡張機能の option.html に個人用の JavaScript ファイルを追加するのに問題があります。

次の行を options.html に追加しました。

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

そして、このファイルに記述されているオブジェクト $.toto には到達できません。

個人用の js ファイルを追加できるかどうか、および options.js ですべてを行う必要があるかどうか、またはどのように行う必要があるかを知りたいです。

ご回答ありがとうございます。

プロジェクトがすでに大きいため、コードの一部を次に示します。

options.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>

options.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