繁体   English   中英

chrome扩展名以获取URL不起作用

[英]chrome extension to get URL not working

我试图做一个chrome扩展名,它可以给出当前窗口的当前选项卡的URL字符串。 我曾见过类似的问题,但是,不知道为什么我的系统无法正常工作。 我也处理过时的电话。 这里是

我什至已经在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);
    }
  }
);

有人能帮我吗?

您没有在清单文件中添加HTML文件,这就是为什么项目无法正常工作的原因,请在manifest.json中进行如下更改:-

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

另外,您也可以在这里看到chrome的有效扩展

编辑2

使用以下代码更改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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM