将 jQuery 与 Google Chrome 应用程序而非 Chrome 扩展程序一起使用

Posted

技术标签:

【中文标题】将 jQuery 与 Google Chrome 应用程序而非 Chrome 扩展程序一起使用【英文标题】:Using jQuery with Google Chrome Apps not Chrome Extensions 【发布时间】:2013-08-15 21:00:12 【问题描述】:

我需要一些帮助来将 jQuery 库包含到 google chrome 应用程序中。我找到了一些关于 google 扩展的帮助。但我没有找到任何关于 google chrome 应用程序的帮助。我认为它必须通过 manifest.json 文件完成......但我很难让它工作......

my main.js file
chrome.app.runtime.onLaunched.addListener(function() 
  chrome.app.window.create('index.html', 
    bounds: 
      width: 1200,
      height: 800
    
  );
);

我的 manifest.json 文件

    
      "manifest_version": 2,
      "name": "eLiteLAB",
      "version": "1",
      "app": 
        "background": 
          "scripts": ["main.js"]
        
      ,
      "content_scripts": [
        
          "css": ["css/jquery-ui-1.10.0.custom.css","css/index.css"],
          "js": ["./js/jquery-1.9.0.js","js/jquery-ui-1.10.0.custom.min.js","js/mainApp.js"]
        
      ]
    

我的索引文件

<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>elite Labs</title>
<link href="css/index.css"  rel="stylesheet" type="text/css">
<link href="css/jquery-ui-1.10.0.custom.css" rel="stylesheet" type="text/css">
<script language="javascript" src="js/jquery-1.9.0.js" type="text/javascript"></script>
<script language="JavaScript" src="js/jquery-ui-1.10.0.custom.min.js" type="text/javascript"></script>
  <script type="text/javascript">
        $(document).ready(function(e) 
            $('#uoperatorselect').hide();
            $('#login').button().click(function(e) 
               $.post('../scripts/login/controller.php',$('#loginform').serialize(),function(w)
                    if(w=='Fail')
                        alert('Login Failed, Please contact your administrator @ 9848622259');
                    else
                        if(w=='Admin')
                            $('#uloginscreen').hide();
                            $('#uoperatorselect').show("slide",  direction: "right" , 1000);
                        
                        else
                            window.location.href = w;   
                        
                    
                );
            );
            $('#back').button().click(function(e)
                $.post('../scripts/login/controller.php',lAction : 'Logout', function(e)
                    $('#uoperatorselect').hide();
                    $('#uloginscreen').show("slide",  direction: "left" , 1000);
                );
            );
            $('#go').button().click(function(a)
                var cnt = $('input:checked').length;
                if(cnt == 1)
                    if($('.udiv1 > input:checkbox:checked').attr('redir') == 'N')
                        alert('Redirection not setup for this option');
                    else
                        window.location.href = $('.udiv1 > input:checkbox:checked').attr('redir');
                    
                
                if((cnt > 1) || (cnt == 0))
                    alert('You have to select one and only one option');
                    return false;
                
            );
         );
</script>
</head>

<body>
<div class="wrapper">
    <div class="container" class=" ui-corner-all">
        <div id="uholder" class=" ui-corner-all">
            <div id="uloginscreen" class=" ui-corner-all">
                    <div class=" ui-corner-all">
                        <img id="elimg" src="images/elitelab.jpg"   />
                        <form id="loginform" enctype="multipart/form-data" action="../scripts/login/controller.php" method="post">
                            <fieldset>
                                <legend>User Credentials</legend>
                                <input type="hidden" name="lAction" value="Login"/>
                                <label for="userid" class="ulabel">Userid</label>
                                <input type="text" name="userid" id="usrid" class="uinput ui-corner-all"  />
                                <label for="password" class="ulabel">Password</label>
                                <input type="password" name="password" id="pwd" class="uinput ui-corner-all" />
                                <a href="#" class="elButton" id="login">LogIn</a>
                            </fieldset>
                        </form>
                    </div>
            </div>
            <div id="uoperatorselect">
                    <div class=" ui-corner-all">
                        <img id="elimg" src="images/elitelab.jpg"   />
                        <form id="redirectform" enctype="multipart/form-data" action="../scripts/login/controller.php" method="post">
                            <fieldset>
                                <legend>Admin Selection</legend>
                                <input type="hidden" name="lAction" value="Login" />
                                <div class="udiv1">
                                    <input type="checkbox" name="operatorscreen" class="ucheckboxes" redir='../../users/operator/' />
                                    <label for="operatorscreen" class="ucheckboxeslbls">Login as Operator</label>
                                </div>
                                <div class="udiv1">
                                    <input type="checkbox" name="operatorscreen1" class="ucheckboxes" redir='../../users/dealer/' />
                                    <label for="operatorscreen1" class="ucheckboxeslbls">Login as Dealer</label>
                                </div>
                                <div class="udiv1">
                                    <input type="checkbox" name="operatorscreen2" class="ucheckboxes" redir='../../users/partner/' />
                                    <label for="operatorscreen2" class="ucheckboxeslbls">Login as Partner</label>
                                </div>
                                <div id="uoptiondiv">
                                    <a href="#" class="elButton" id="back">Back</a>
                                    <a href="#" class="elButton" id="go">Go</a>
                               </div>
                            </fieldset>
                        </form>
                    </div>
            </div>
        </div>
    </div>
</div>
</body>
</html>

如果您注意到我有一些 jquery 代码并且没有执行...

【问题讨论】:

用您的代码编辑您的问题!什么不工作?让我们看看你有什么。 请告诉我你的想法...... 【参考方案1】:

从你的代码很难说(当然), 但很明显,jquery-1.9.0.jsmainApp.js 有不同的路径:-)

我说的是manifest.json中的一个点

"js": [
   "./js/jquery-1.9.0.js",
   "js/jquery-ui-1.10.0.custom.min.js",
   "js/mainApp.js"
]

【讨论】:

以上是关于将 jQuery 与 Google Chrome 应用程序而非 Chrome 扩展程序一起使用的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 jquery 访问通过 google chrome 内容脚本注入的 iframe 的内容

Google Chrome Jquery onSelect 无法运行

如何在 Google Chrome 的 Greasemonkey 脚本中使用 jQuery?

Google Chrome、JQuery 和带有键的无法解释的事件行为

jQuery 淡入和淡出在 Google Chrome 中无法正常工作

使用 Google Chrome 逐行调试 Javascript