将Chrome Extension加到快捷菜单中

简介: 转载请注明出处:http://blog.csdn.net/horkychen 接着上一篇Chrome插件的实作。 Step 1. 修改manifest.

转载请注明出处:http://blog.csdn.net/horkychen

接着上一篇Chrome插件的实作

Step 1. 修改manifest.json,

  a. 增加权限"contextMenus"和"notifications"

     contextMenus -> 表示插件要操作快捷菜单

     notifications -> 表示插件将弹出消息通知 (处理菜单的click事件)

    "permissions": ["contextMenus","tabs", "notifications"],

   

  b. 增加backgroup page, 用于在加载时就创建快捷菜单。

     "background_page":"background.html",


  

 Step 2. 新建background.html,添加如下内容:

<html>
<head>
<title></title>
</head>
<body>
<script> 
function showNotification()
{
  webkitNotifications.createHTMLNotification("notification.html").show();
}

chrome.contextMenus.create( {
      "type" :"normal", 
      "title": "2D BarCode Generator",
      "contexts":["all"],
      "onclick":function(){showNotification();}
} );

</script> 

</body>
</html>

 

整个页只做一件事,添加菜单项。其中的onclick所指定的函数,会将新的条码又HTML Notification窗口显示出来。notification.html就是显示的网页。


 Step 3.新建notification.html,内容如下:

<html>
<head>
<title>2D Bar Code</title>
</head>
<body>
<img id="barcode_img"src ="http://barcode.tec-it.com/barcode.ashx?code=QRCode&modulewidth=4&unit=px&data=http%3A%2F%2Fblog.csdn.net/horkychen&dpi=120&imagetype=png&rotation=0&color=&bgcolor=&fontcolor=&quiet=0&qunit=mm&eclevel="alt="by TEC-IT"/>

<script type="text/javascript> 
  chrome. tabs.getSelected(null,function(tab) {
      changeBarCode( tab.url);
      }
  ) ;

function changeBarCode (url) 
{
   var text = url;
   if ( 0 == text.length ) 
   {
     text = "http://blog.csdn.net/horkychen";
   }

   var newPicUrl = "http://barcode.tec-it.com/barcode.ashx?code=QRCode&modulewidth=6&unit=px&data="+text+"&dpi=120&imagetype=png&rotation=0&color=&bgcolor=&fontcolor=&quiet=0&qunit=mm&eclevel=";

   document.getElementById("barcode_img").src=newPicUrl;
}
</script> 
</body>
</html>

 

这个和index.html相似,差别仅在于changeBarCode直接接受URL,而没有提供文本框。


效果如下:


下面是弹出的消息框:

            

 Step 4.重构,变更条码的代码有重复,我们需要提取公共函数来减少这种重复。所以新一个common.js文件:

 指定changeBarCode接受两个参数,第一个表示新的URL地址,第二个是更新到哪个元件上。

function changeBarCode(url,strID)
{
     var text = url;
     if ( 0 == text.length )
     {
        text = "http://blog.csdn.net/horkychen";
     }
    
     var newPicUrl = "http://barcode.tec-it.com/barcode.ashx?code=QRCode&modulewidth=4&unit=px&data="+text+"&dpi=95&imagetype=png&rotation=0&color=&bgcolor=&fontcolor=&quiet=0&qunit=mm&eclevel=";
     document.getElementById(strID).src=newPicUrl;
}


对应修改notification.html的呼叫位置:

<script type="text/javascript">
chrome.tabs.getSelected(null,function(tab)  {
     refreshBarCode(tab.url);
     }
  );
 
function refreshBarCode(url)
{
   changeBarCode(url,"barcode_img");
}
</script>


还有index.html中对应呼叫的位置:

<script type="text/javascript">
  var tablink;
  chrome.tabs.getSelected(null,function(tab)  {
    tablink = tab.url;
     document.getElementById("url").value = tablink;
     document.getElementById("url").focus();
     refreshBarCode();
     }
  );
 
  function refreshBarCode()
  {
         var text = document.getElementById("url").value;
       changeBarCode(text,"barcode_img");
  }
 
</script>


新的代码包可以在这里下载

 

目录
相关文章
|
Web App开发
Chrome Extension ContextMenus 创建 适配Manifest3
Chrome Extension ContextMenus 创建 适配Manifest3
|
Web App开发 移动开发 前端开发
使用Svelte开发Chrome Extension
起因 最近Chrome浏览器升级到96大版本后,二维码入口从地址栏移动至二级菜单。这对H5前端开发来说不太友好,每次需要页面二维码时都需要多点两下(* ̄︿ ̄)。 因此萌生了开发一个二维码Chrome Extension的想法(@ ̄ー ̄@)。 经过多方技术选型(React、原生、Vue、Svelte等),最终选择Svelte,原因是语法简单,心智负担小,运行时代码少,打包体积小
276 0
|
Web App开发 JavaScript 测试技术
|
4月前
|
Web App开发 数据采集 存储
WebDriver与Chrome DevTools Protocol:如何在浏览器自动化中提升效率
本文探讨了如何利用Chrome DevTools Protocol (CDP) 与 Selenium WebDriver 提升浏览器自动化效率,结合代理IP技术高效采集微博数据。通过CDP,开发者可直接操作浏览器底层功能,如网络拦截、性能分析等,增强控制精度。示例代码展示了如何设置代理IP、cookie及user-agent来模拟真实用户行为,提高数据抓取成功率与稳定性。适用于需要频繁抓取互联网数据的应用场景。
589 3
WebDriver与Chrome DevTools Protocol:如何在浏览器自动化中提升效率
|
1天前
|
Web App开发 安全 前端开发
一个接口4个步骤轻松搞定最新版Chrome、Edge、Firefox浏览器集成ActiveX控件
目前的浏览器市场,谷歌浏览器占据了半壁江山,因此,谷歌也是最有话语权的,2015年开始取消支持 NPAPI 插件,2022 年10月停止支持 PPAPI 插件;而曾经老大哥IE浏览器也已停止服务,退出历史舞台,导致大量曾经安全、便捷的ActiveX控件无法使用。为了解决这个难题,本人特研发出allWebPlugin中间件,重新让所有ActiveX控件能在谷歌、火狐等浏览器使用。
|
3天前
|
Web App开发 数据采集 JavaScript
Chrome浏览器实例的TypeScript自动化脚本
Chrome浏览器实例的TypeScript自动化脚本
|
2月前
|
Web App开发 缓存 安全
WIN11 Chrome 双击打不开闪退及Chrome浏览器不能拖拽文件crx
【11月更文挑战第6天】本文介绍了 WIN11 系统中 Chrome 浏览器双击打不开闪退及不能拖拽文件 crx 的原因和解决方法。包括浏览器版本过旧、扩展程序冲突、硬件加速问题、缓存过多、安全软件冲突、系统文件损坏、用户配置文件损坏等问题的解决方案,以及 crx 文件的屏蔽、权限问题和文件格式问题的处理方法。
177 2
|
2月前
|
Web App开发 Linux iOS开发
Chrome浏览器如何导出所有书签并导入书签
【11月更文挑战第4天】本文介绍了如何在 Chrome 浏览器中导出和导入书签。导出时,打开书签管理器,点击“整理”按钮选择“导出书签”,保存为 HTML 文件。导入时,同样打开书签管理器,点击“整理”按钮选择“导入书签”,选择之前导出的 HTML 文件即可。其他主流浏览器也支持导入这种格式的书签文件。
884 2
|
2月前
|
Web App开发 JavaScript 前端开发
使用 Chrome 浏览器的内存分析工具来检测 JavaScript 中的内存泄漏
【10月更文挑战第25天】利用 Chrome 浏览器的内存分析工具,可以较为准确地检测 JavaScript 中的内存泄漏问题,并帮助我们找出潜在的泄漏点,以便采取相应的解决措施。
363 9
|
3月前
|
Web App开发 开发者