将当前标签页的URL发送到弹出窗口 - Chrome扩展程序

4

我一直在跟随一些教程,但遇到了使用已弃用代码的示例。

我正在尝试将当前选项卡的URL发送到弹出窗口。

我的代码如下:

Manifest.json 包含正确的权限:

"permissions": [
    "activeTab",
    "tabs"
  ]

Popup.js,我认为问题出在这里,但控制台没有错误信息。

function setup() {
  noCanvas();

  var url = 'URL'

  function sendMessage() {
    var msg = {
      from: 'popup',
      page: url
    }

    var params = {
      active: true,
      currentWindow: true
    }
    chrome.tabs.query(params, gotTabs);

    function gotTabs(tabs) {
      chrome.tabs.sendMessage(tabs[0].id, msg);
      url = document.getElementById('currentLink').innerHTML;
      console.log(url)
    }
  }
}

Popup.html

<body>
    <h1>Popup Interface Example</h1>
    <p id="currentLink">Loading ...</p>
</body>

我这里缺少什么?


noCanvas(); - 这个函数在任何地方都有定义吗? - Jaromanda X
@JaromandaX 哦,是的,我正在使用p5库。它在p5.dom库中定义。我不需要使用它,只是因为示例在使用它。 - Matthew Snell
var url = 'URL' - 这是准确的代码吗? - Jaromanda X
@JaromandaX 我的想法是我提供一个占位符字符串,然后当弹出窗口被执行时,它会检索网页的真实URL。可能完全不对。 - Matthew Snell
1个回答

3
我已经理解了。这个问题比较简单。 弹出框.js
chrome.tabs.query({'active': true, 'lastFocusedWindow': true}, function (tabs) {
    var url = tabs[0].url;
    console.log(url);
    document.getElementById("myText").innerHTML = url;
});

Popup.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Extension Pop-Up</title>
    <script src="libraries/p5.js" type="text/javascript"></script>
    <script src="libraries/p5.dom.js" type="text/javascript"></script>
    <script src="popup.js" type="text/javascript"></script>
  </head>
  <body>
    <h1>Wordnik Lookup</h1>
    <p id="myText"></p>
  </body>
</html>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接