通过Jquery(Chrome扩展)解析RSS



我需要从Chrome扩展程序的RSS提要中获取一些数据。我正在尝试使用jQuery来做到这一点。

检查弹出窗口显示:

  • 未捕获的引用错误: $ 未定义 - 弹出窗口.js:5
  • 拒绝加载脚本"http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.12.0.min.js",因为它违反了以下内容安全策略指令:"script-src 'self' blob: filesystem: chrome-extension-resource:"。- 弹出窗口.html:1

这是代码:

弹出窗口.js

(function () {
alert("Function running"); //Fired
$(document).ready(function (e) {
    $.get("https://fupifarvandet.dk/episodes.rss", function (data) {
        $(data).find("item").each(function () { 
            var el = $(this);
            console.log("------------------------");
            console.log("title      : " + el.find("title").text());
            alert(el.find("title").text());
            alert("Inside the function"); //Never fired
        });
    });
});  
  alert("Function has run"); //Never fired
})();

manifest.json

{
  "manifest_version": 2,
  "name": "RSS Read test",
  "description": "Extension description",
  "version": "1.0",
  "browser_action": {
    "default_icon": "img/icon.png",
    "default_popup": "popup.html"
  }
}

弹出窗口.html

<!doctype html>
<html>
  <head>
    <title>Getting Started Extension's Popup</title>
    <style>
    </style>
    <script src="popup.js"></script>
    <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.12.0.min.js"></script>
  </head>
  <body>
  </body>
</html>

有两种方法可以做到这一点。最简单的方法是将 jQuery 文件包含在扩展文件中。另一种方法是编辑 CSP 以允许从该 URL 加载脚本。我会推荐第一种方法,因为它是您需要担心的与网络相关的事情。

正如BeardFist指出的那样,包括像这样的jQuery文件:

<script src="jquery.js"></script>

确保 jquery.js 与 manifest.json 位于同一文件夹中

而不是:

<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.12.0.min.js"></script>

并确保在任何其他<script>命令之前运行此行代码。这解决了问题,我现在能够检索我需要的信息。

最新更新