0

我只是想将当前标签 url 发送到我的扩展程序:

以下是我的 manifest.json

{
 "name": "DocUrlExtention",
 "version": "1.0",
 "manifest_version": 2,
 "description": "The first extension that I made.",
 "browser_action": {
 "default_icon": "icon.png",
 "default_popup": "popup.html"
},
 "content_scripts": [
 {
  "matches": ["http://*/*"],
  "js": ["contentscript.js"]
 }
 ]}

以下是我的 contentscript.js

chrome.extension.sendRequest({url: window.location.href}, function(response) {
   console.log(response.farewell);
});

以下是我的 popup.html

<!doctype html>
<html>
<head>
<title>Getting Started Extension's Popup</title>

<script>
    chrome.extension.onRequest.addListener(
      function(request, sender, sendResponse) {
        console.log(sender.tab ?
                    "from a content script:" + sender.tab.url :
                    "from the extension");
      });
</script>

<!-- JavaScript and HTML must be in separate files for security. -->
<!--<script src="popup.js"></script>-->
</head>
<body>
<div id="mydiv">Doc Id:</div>
</body>
</html>

我在控制台中看不到任何东西。我是 Chrome 扩展程序的新手。

4

1 回答 1

1

您的清单文件包含"manifest_version": 2,,它启用内容安全策略。默认情况下,内联 JavaScript 不会被执行。而且,没有办法放宽 CSP 以允许内联 JavaScript

你有两个选择:

  1. 删除"manifest_version": 2(禁用默认 CSP)。
  2. 将内联 JavaScript 移动到外部文件。

建议使用第二种方法,并且在您的代码中也建议...

...
<!--为了安全起见,JavaScript 和 HTML 必须位于不同的文件中。-->
<!-- <script src="popup.js"></script> -->
</head>
...

PS。可以通过右键单击浏览器操作图标并选择最后一个选项“检查弹出窗口”来打开弹出窗口的开发工具。

于 2012-05-02T16:20:32.487 回答