浏览器插件开发初体验(URL OPENER)

https://github.com/sxei/chrome-plugin-demo 参考资料

需求:
1、对于一串文本,提取其中的urls并打开这些url。
2、提取浏览器所有tabs的url和title

在这里插入图片描述

例如:

// https://www.cnblogs.com/kelelipeng/p/17129941.html
// https://www.ruanyifeng.com/blog/2019/09/curl-reference.html
// https://ruanyifeng.com/blog/2011/09/curl.html
// Curl命令的data, data-ascii, data-binary, data-raw和data-urlencode选项详解  https://blog.csdn.net/taiyangdao/article/details/77020762
//-d可以指定json格式数据   https://www.cnblogs.com/kelelipeng/p/17129941.html

项目结构
在这里插入图片描述

在这里插入图片描述
选中项目文件夹即可。

popup.js

document.getElementById('open-urls').onclick = function() {
  const userInput = document.getElementById('user-input').value;
  // 使用正则表达式提取URL
  const regex = /(https?:\/\/[^\s]+)/g;
  const urls = userInput.match(regex);
  for (const url of urls) {
    chrome.tabs.create({url: url});
  }
};


document.getElementById('collect-tabs-info').onclick = function() {
  chrome.tabs.query({}, function(tabs) {
    const tabsInfo = tabs.map(tab => `${tab.url},${tab.title}`);
    const tabsInfoText = tabsInfo.join('\n');

    navigator.clipboard.writeText(tabsInfoText).then(function() {
      alert('extract urls success');
    }, function(err) {
      console.error('extract urls fail', err);
    });
  });
};

popup.html

<!DOCTYPE html>
<html>
  <head>
    <title>URL Opener</title>
    <style>
      body {
        width: 200px;
        padding: 10px;
      }
    </style>
  </head>
  <body>
    <textarea id="user-input" rows="10" style="width: 100%;"></textarea>
    <button id="open-urls">Open URLs</button>
    <button id="collect-tabs-info">Extract URLs</button>
    <script src="popup.js"></script>
  </body>
</html>

manifest.json

{
  "manifest_version": 3,
  "name": "URL Opener",
  "version": "1.0",
  "action": {
    "default_popup": "popup.html"
  },
  "permissions": [
	"tabs"
  ]
}

调试:
在这里插入图片描述
配合一些console的使用即可

相关推荐

  1. Chrome开发开启浏览器功能的无限可能

    2024-03-16 00:24:11       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-16 00:24:11       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-16 00:24:11       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-16 00:24:11       82 阅读
  4. Python语言-面向对象

    2024-03-16 00:24:11       91 阅读

热门阅读

  1. tvm android_rpc_test.py执行报错解决

    2024-03-16 00:24:11       47 阅读
  2. 智能网联汽车网络安全威胁具体

    2024-03-16 00:24:11       41 阅读
  3. Nodejs引入模块运行时报错

    2024-03-16 00:24:11       45 阅读
  4. 安卓自定义ScrollView

    2024-03-16 00:24:11       34 阅读
  5. 技术问题记录

    2024-03-16 00:24:11       47 阅读
  6. Spring Cloud面试系列-01

    2024-03-16 00:24:11       49 阅读
  7. 【gpt实践】实用咒语分享

    2024-03-16 00:24:11       44 阅读
  8. uniapp内实现链接跳转到浏览器网页上

    2024-03-16 00:24:11       42 阅读