其实就是类似当安装完 Flashget 后 Internet Explorer 的右键多了“使用网际快车下载”的选项一样,现在我们的需求是:当我们在图片右键时出现“复制图像地址”的选项。
其实很简单,先把下列代码存为 abc.reg 并导入:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\复制图像地址(&Z)]
@="C:\\CopyImageUrl.htm"
"contexts"=dword:00000002
并把下列代码存为 C:\CopyImageUrl.htm:
<script language="javascript" defer>
var Elem=external.menuArguments.event.srcElement;
var imgUrl='';
if(Elem.tagName=='IMG') imgUrl=Elem.src;
else if(Elem.tagName=='A'){
    var cElem=Elem.children;
    if(cElem.length){
        for(i=0; i<=cElem.length-1; i++){
            if(cElem[i].tagName=='IMG') imgUrl=cElem[i].src;
            break;
        }
    }
}
if(imgUrl) clipboardData.setData('text',imgUrl)
</script>
重启你的浏览器就可以用了。
要注意几点:
这个功能适用于 IE 和所有以 IE 为内核的第三方浏览器,比如 Mathxon。
“复制图像地址(&Z)”后面的符号 Z 为快捷键,根据不冲突又易按的原则,你至少还可以改为:q、w、x。
contexts 对应应用对象有:Default、Images、Controls、Tables、Text selection、Anchor、Unknown。
与 contexts 并列的,还有一个可选的双字节 Flags,值为 0x1 时,脚本将以窗口对话框方式执行。
如果脚本存在于某 dll 文件的 123 位置,还可以用“Example.dll, 123”这样的指向来定义。
快捷键
根据个人经验,熟练地使用这个功能,至少可以让操作快上 80% 的时间,甚至 Flashget 默认也没设置这个人性化的功能,遗憾。不过我们完全可以修改之,嘿嘿!
可选项Value Constant_Name Description
0x01 CONTEXT_MENU_DEFAULT Shown on all context menus.
0x02 CONTEXT_MENU_IMAGE Context menu of p_w_picpaths only.
0x04 CONTEXT_MENU_CONTROL Context menu of form controls only.
0x08 CONTEXT_MENU_TABLE Context menu of tables only.
0x10 CONTEXT_MENU_TEXTSELECT Context menu of selected text only, including p_w_picpaths in a selected region.
0x20 CONTEXT_MENU_ANCHOR Context menu of links only. Does not include linked p_w_picpaths or p_w_picpath maps.
0x40 CONTEXT_MENU_UNKNOWN Right-click on none of the above.
多种值综合应用是“或”的关系,比如需要在默认和连接时右键时显示,则 contexts=0x21;想单独在图片上显示,则 contexts=0x02 了。
举例
下面例子可以将页面在新窗口显示:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\Show in New Window]
@="file://c:\\example2.htm"
"Contexts"=dword:00000001
c:\example2.htm
<SCRIPT LANGUAGE="javascript" defer>
    window.open(external.menuArguments.location.href);
</SCRIPT>
下面例子可以将选中文字变为大写:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\My &Menu Item]
@="file://c:\myscript.htm"
"Contexts"=dword:00000001
c:\myscript.htm
<SCRIPT LANGUAGE="javascript" defer>
   var parentwin = external.menuArguments;
   var doc = parentwin.document;
   var sel = doc.selection;
   var rng = sel.createRange();
   var str = new String(rng.text);
   if(str.length != 0) rng.text =  str.toUpperCase();
</SCRIPT>
效果
删除
将下列代码存为 unreg.reg 并导入就可以了:
Windows Registry Editor Version 5.00
[-HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\复制图像地址(&Z)]
参考
About the Browser
http://windowssdk.msdn.microsoft.com/en-gb/library/ms629731.aspx
Adding Entries to the Standard Context Menu
http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/ext/tutorials/context.asp
如何在右键菜单添加“拷贝图像地址”
http://forum.maxthon.com/index.php?showtopic=13228&st=0&p=87259
目前自己用的:
Windows Registry Editor Version 5.00
 
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt]
 
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\复制图像地址(&Z)]
@="D:\\Afly\\CopyImg.html"
"contexts"=dword:00000002
 
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\打开图像(&W)]
@="D:\\Afly\\OpenImg.html"
"contexts"=dword:00000002
 
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\播放该音乐(&M)]
@="D:\\Afly\\OpenMusic.html"
"Contexts"=dword:00000022
 
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\查询单词(&D)]
@="D:\\Afly\\OpenDict.html"
"contexts"=dword:00000030
<script language="javascript" defer>
   var rng = external.menuArguments.document.selection.createRange();
   var str = new String(rng.text);
   if(str.length == 0) str=external.menuArguments.event.srcElement.innerText;
   window.open("http://sh.dict.cn/search/?q="+str,"_search"); 
</script>
<script language="javascript" defer>
var Elem=external.menuArguments.event.srcElement;
var imgUrl='';
var rng = external.menuArguments.document.selection.createRange();
var str = new String(rng.text);
if(Elem.tagName=='IMG') imgUrl=Elem.src;
else if(Elem.tagName=='A'){
    var cElem=Elem.children;
    if(cElem.length){
        for(i=0; i<=cElem.length-1; i++){
            if(cElem[i].tagName=='IMG') imgUrl=cElem[i].src;
            break;
        }
    }
}
else if(str.length != 0){
 imgUrl =  str;
}
if(imgUrl) eval('wi'+'ndow.op'+'en(imgUrl,"_blank")');
</script>
<script language="javascript" defer>
var Elem=external.menuArguments.event.srcElement;
var MusicUrl="";
if(Elem.tagName=='IMG'){
 MusicUrl=Elem.parentElement.href;
}
if(Elem.tagName=='A'){
 MusicUrl=Elem.href;
}
window.open("file://D:/Afly/Player.html?"+MusicUrl,'_blank','status=no,resizable=yes,width=350,height=250,left=250,top=130');
//encodeURIComponent(MusicUrl)
</script>
<html>
<head>
<script language="javascript">
var url = document.location.search.substr(1);
window. {
    if(url)WMP.URL=url;WMP.play();
}
</script>
</head>
<body style="margin:0;padding:0">
<div id="MusicBox" class="SideContent">
<object classid="clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" id="WMP" width="100%" height="100%">
  <param name="URL" value="" />
  <param name="autoStart" value="1" />
  <param name="playCount" value="3" />
  <param name="rate" value="1" />
  <param name="enabled" value="1" />
  <param name="invokeURLs" value="-1" />
  <param name="volume" value="50" />
  <param name="mute" value="0" />
  <param name="uiMode" value="full" />
  <param name="stretchToFit" value="0" />
  <param name="windowlessVideo" value="1" />
  <param name="enableContextMenu" value="1" />
  <param name="fullScreen" value="0" />
  <param name="enableErrorDialogs" value="0" />
</object>
</div>
</body>
</html>
原文:http://www.playes.net/Blog/436.asp

转载于:https://blog.51cto.com/508239/218260

在浏览器右键添加自定义菜单相关推荐

  1. JS--屏蔽浏览器右键菜单

    //屏蔽浏览器右键菜单     if (window.Event)      document.captureEvents(Event.MOUSEUP);      function nocontex ...

  2. 中的 隐藏鼠标菜单_如何在鼠标右键菜单中添加自定义菜单?工效率提升一倍...

    人都是"懒"的,在使用电脑时,对于常用的操作,步骤太多用久了难免会产生烦躁的情绪,虽然系统已经自带了很多快捷方式,但还是不够用,我们通常都会把常用的东西通过快捷方式来添加到桌面,但 ...

  3. 如何在鼠标右键菜单中添加自定义菜单?工效率提升一倍

    人都是"懒"的,在使用电脑时,对于常用的操作,步骤太多用久了难免会产生烦躁的情绪,虽然系统已经自带了很多快捷方式,但还是不够用,我们通常都会把常用的东西通过快捷方式来添加到桌面,但 ...

  4. 如何用vba在单元格右键快捷菜单中添加自定义的菜单命令

    如下图所示,当鼠标右键单击excel工作表中的单元格时,将会弹出单元格右键快捷菜单. 虽然从excel 2007开始 微软引进了ribbon 功能区来代替excel 常规菜单栏,但是像上图所示的鼠标右 ...

  5. WPS右键菜单添加自定义菜单

    关于在OFFICE EXCEL右键菜单中加入自定义菜单,网上例子一抓一大把,这里就不在赘述. 今天主要说的是在WPS中如何往右键菜单添加自定义事件.其实说白了就是找到右键菜单在WPS中的索引,废话不说 ...

  6. 火狐浏览器工具栏/折叠菜单怎么设置?火狐浏览器工具栏/折叠菜单定制教程

    为了方便用户将一些常用的功能及应用添加到工具栏/折叠菜单中,火狐浏览器推出了一项特别的功能"定制".也就是说,借助该功能,用户就可以自由添加或替换工具栏/折叠菜单中的各类功能了!那 ...

  7. 关于安装Office之后,右键新建菜单中没有Word、PPT、Excel选项

    文章目录 前言 一.个人感觉比较好用的方法: 二.该问题产生的原因 总结 前言   今天刚重装完系统,发现安装Office之后,右键新建菜单中没有Word.PPT.Excel选项.百度了下,相关问题的 ...

  8. easyui中在datagrid中右键出现菜单

    onRowContextMenu,easyui提供了这个方法,来实现右键出现菜单.其中给了三个参数:e,index,row. 大多数人会出现这样的问题,你发现,当你右键的时候,总是浏览器的菜单出现 o ...

  9. 前端实现右键自定义菜单

    大家好,我是前端西瓜哥. 本文将讲解 Web 页面如何实现自定义菜单功能. 线上 demo: https://codepen.io/F-star/pen/WNOvQVQ 思路 核心思路是:注册 con ...

最新文章

  1. 一个例子说明如何在DataSnap中使用FireDAC
  2. 蓄水池采样(Reservoir Sampling)
  3. 2018计算机应用基础考试6,2018结构工程师《计算机应用基础》试题(6)
  4. java闹钟程序声音_跪求高手帮忙写一个JAVA手机闹钟程序 实现添加铃声和设置多闹钟...
  5. 执行git命令时出现fatal: ‘origin‘ does not appear to be a git repository错误
  6. Linux笔记-centos7源码安装Mysql5.6(图解详细)
  7. 计算机网络技术之网络系统设计与组建工程
  8. 书生浏览器不能打开这个文件或者url_这些浏览器工作原理你都吃透了吗?
  9. 合成孔径雷达算法与实现_典型线面目标合成孔径雷达参数化成像
  10. DB2 错误码sqlcode对应表
  11. php生成流水号,生成唯一流水号
  12. 实例:用C#.NET手把手教你做微信公众号开发(系列文章索引目录)
  13. 全球及中国毛巾产品市场盈利前景与供需调查分析报告2022版
  14. 2020COSMO时尚盛典即将闪耀启幕
  15. 用python开发微信公众平台聊天机器人
  16. 状态方程的离散化仿真
  17. Python Flask-Web学习中的坑坑洼洼
  18. c51出现p1未定义标识符该如何解决_单片机编程时出现undefined identifier是什么意思? 大哥们教教我吧!...
  19. 2019最新全套JAVA全套课程
  20. Java连接K8s_6-java操作k8s

热门文章

  1. 桂林电子科技大学计算机专科可以换专业吗,桂林电子科技大学计算机专业怎样...
  2. OpenCVSharp 基于特征的图像拼接
  3. 利用计算机网络盗窃,利用计算机病毒盗窃网络虚拟财产行为定性分析
  4. 学计算机大专需要买笔记本吗,上大学该买电脑吗?学长:买的时候以为是刚需,买了变成“鸡肋”...
  5. Python笔记-爬取Boss直聘的招聘信息
  6. Freemarker模板引擎学习,生成html里的动态表格,可合并单元格
  7. 用c语言设计个人所得税的程序,C语言编写一个计算个人所得税的程序,要求输入收入金额,能够输...
  8. 全国计算机考试四给,全国计算机等级考试一级B模拟试题四
  9. 如何测试手机开机键 ?
  10. 手机测试陨石软件,不用仪器检测,肉眼就能教你辨别你手上的陨石!