如何在options.html中使用javascript文件

时间:2013-06-03 11:37:20

标签: javascript html google-chrome-extension

我在我的option.html中为我的google-chrome扩展程序添加个人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);
    }

});

2 个答案:

答案 0 :(得分:1)

像这样使用.ready事件。

 jQuery(document).ready(function(){

  // jquery function code

 });

答案 1 :(得分:0)

在manifest.json中,尝试在“脚本”行中添加它,如下所示:

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

希望它有效。