簡體   English   中英

在Chrome擴展程序中使用JQuery

[英]Using JQuery in a Chrome Extension

我正在為一個Minecraft服務器創建一個chrome擴展。 此擴展的目的是返回服務器的在線狀態。 我正在使用JQuery的getJSON函數來解析位於Web服務器上的JSON文件中的狀態,當我在瀏覽器中將其作為實際網頁運行時,這很好用,但是我不能讓它在擴展中工作。

的manifest.json

{
  "manifest_version": 2,

  "name": "CJFreedom",
  "description": "Displays the status of the Minecraft server CJFreedom.",
  "version": "1.0",


  "permissions": [
    "https://www.thecjgcjg.com/panel/scripts/stats.php",
    "https://www.thecjgcjg.com/",
    "https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"
  ],

  "browser_action": {
    "default_icon": "icon.png",
    "default_popup": "popup.html"
  }
}

popup.html

<html>
<head>

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script src="popup.js"></script>
    <link rel="stylesheet" type="text/css" href="style.css">

</head>
<body>
    <img src="header.png" alt="diz iz header" width="300px"> <br/>
    <a href="http://www.twitter.com/CJFupdates" target="_blank"><img src="twitter.png" alt="Follow CJFreedom on twitter" width="16px" style="float: right; margin: 5px;"></a>
        <p style="float: right;">Follow: </p>

    <div id="content">
        <p style="float: left;" id="status"> CJFreedom is <span style="color: orange;">?...</span></p> <br />
        <p> IP: <b>play.thecjgcjg.com </b></p>
        <p> Forum: <b><a href="http://www.thecjgcjg.com/forum/" target="_blank">thecjgcjg.com/forum</a></b></p>
    </div>
</body>
</html>

popup.js

$.getJSON("https://www.thecjgcjg.com/panel/scripts/stats.php", function(result){
    status = result.status;

    if (status == "Offline")
        $('#status').html('CJFreedom is <span style="color: red;"><b>Offline</b>.(</span>');
    else
        $('#status').html('CJFreedom is <span style="color: #3AC400;"><b>Online</b>!</span>');

});

正如您所看到的,當擴展程序正在解析JSON文件時,狀態為“?...”,當服務器啟動時它處於“在線”狀態,當它處於關閉狀態時它處於“離線”狀態。 正如我之前提到的,當我在瀏覽器中將其作為網頁運行時它可以正常工作,但是當我打開擴展程序時它會停留在“?...”部分,好像它只是忽略了javascript ...

您可能遇到內容安全策略的問題,該問題會阻止加載外部腳本。

您是否嘗試過下載jQuery文件並將其作為擴展程序的一部分包含在內,就像任何其他JavaScript文件一樣? 這在過去對我來說非常合適,並且支持Chrome應用和擴展程序通常首選的“離線優先”模式。 這在本頁底部的“捆綁”部分中提到:

如果要使用瀏覽器未提供的庫(例如,jQuery),可以將該庫的JavaScript文件與擴展名捆綁在一起。 捆綁的庫在擴展中工作,就像在其他網頁中一樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM