chrome扩展以使URL无法正常工作

时间:2016-05-27 06:49:50

标签: javascript google-chrome

我尝试制作一个chrome扩展程序,可以提供当前窗口当前选项卡的URL字符串。 我曾见过类似的问题,但不知道为什么我的工作没有。 我也照顾过不推荐的电话。 Here it is

我甚至在manifest.json文件中正确设置了权限。 但它不起作用。 这是主要的js文件代码

// background.js

chrome.browserAction.onClicked.addListener(function(tab) {
      // Send a message to the active tab
      chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
        var activeTab = tabs[0];
        chrome.tabs.sendMessage(activeTab.id, {"message": "clicked_browser_action"});
      });
    });

// content.js

chrome.runtime.onMessage.addListener(
  function(request, sender, sendResponse) {
    if( request.message === "clicked_browser_action" ) {
      var firstHref = $("a[href^='http']").eq(0).attr("href");

      //console.log(firstHref);
      alert(firstHref);
    }
  }
);

有人能帮助我吗?

1 个答案:

答案 0 :(得分:1)

您没有在清单文件中添加HTML文件,因为您的项目无法正常工作, 在你的manifest.json中做一些改变: -

.......
"browser_action": {
    "default_icon": "icon.png",
    "default_popup": "popup.html"
  }, 
 ....some code here//

或者你也可以在这里看到chrome的工作扩展

  

EDIT2

使用以下代码更改background.js: -

document.addEventListener('DOMContentLoaded', function () {
  var link = document.getElementById('btn');
  // onClick's logic below:
  link.addEventListener('click', function () {
    AddUrl();
  });


  function AddUrl() {
    chrome.tabs.query({ currentWindow: true, active: true }, function (tabs) {
      alert(tabs[0].url)
      // document.getElementById('Current_url').value = tabs[0].url;
      console.log(tabs[0].url, tabs[0].title, tabs[0].incognito, tabs, this.bookmark_title);
    });
  }
});

和popup.html使用此代码: -

<!DOCTYPE html>
<html>

<head>
    <title>Page Title</title>
</head>
<script src="background.js"></script>

<body>
    <h1>This is a Heading</h1>
    <button id="btn"> Click Me </button>
</body>

</html>