要想给opera增加功能,首先要理解opera运行原理。
opera上的按钮和菜单等都是通过读取配置文件来动态显示的,我们要做的就是改变配置文件。
关于Opera的安装、目录和文件详解,可以参考:http://www.operachina.com/viewtopic.php?t=1701&extra=page%3D2
开发方法一:
通过opera内部命令给opera增加功能
简单来讲就是写个菜单或按钮,然后将这个菜单或按钮的功能用opera内部命令写。
opera的内部命令很多,能实现很多功能。比如复制页面地址,链接,选择文本,在编辑框插入文字,移动到另外一个控件,关闭标签,新建标签,显示工具栏,启动其他程序等等。
例如要添加迅雷下载:
打开菜单文件,在Link Popup Menu下添加:
Item, "迅雷"=Execute program, "D:/Program Files/Thunder Network/Thunder/Thunder.exe", "%l"
即可在链接上右击出现迅雷,点击就会启动迅雷,并给迅雷添加此链接下载任务
关于opera内部命令参考:http://www.operachina.com/viewtopic.php?t=309&extra=page%3D1
关于Opera按钮和菜单/语法指南:http://www.operachina.com/viewtopic.php?t=1770&extra=page%3D1
开发方法二:
通过javascript给opera增加功能
这是opera最重要的功能,
javascript可以修复网页上有问题的脚本;通过对网页改变或添加自己的内容,来增强网页功能;控制页面上允许运行什么脚本,以及允许脚本做什么;通过向 UserJS 中添加功能,简化用户书签栏;获取页面上的各个元素等等。
javascript可以写在菜单或按钮中,即在点按钮或选择菜单时运行,
例如要添加迅雷下载(这个多了传递页面的cookies等)
Item, "迅雷"="Go to Page,"javascript:void(inivar='%l')",,,"Attachment Archives" & Go to Page, "javascript:(function(){const rn='/r/n'; var link=inivar;inivar=null; var dc=document.cookie; var cc=(dc&&link.indexOf(location.hostname)!=-1)?dc+'; ':''; var txt=(document.getSelection())?document.getSelection().replace(//s/g,' ').replace(//x22/g,'/x27'):''; var fr=document.createElement('iframe'); fr.setAttribute('id', 'tr_dummy');fr.setAttribute('frameborder', '0');fr.setAttribute('style', 'width:0px;height:0px;visibility:hidden;position:absolute;left:-999em;');fr.setAttribute('src', 'data:text/xunlei;charset=UTF-8,'+encodeURI(document.location+rn+link+rn+txt+rn+cc+rn+rn+rn));document.documentElement.appendChild(fr); var tr=document.getElementById('tr_dummy');tr.parentNode.removeChild(tr);})()" "
javascript也可以放在User Javascript目录,这样opera运行时自动会去调用javascript文件
如果不是很懂javascript,可以参考其他人写的javascript(我就是这样)
javascript参考:http://www.operachina.com/viewtopic.php?f=41&t=32013
开发opera插件比较困难,必须得熟悉opera才行,还要多看其他人写的按钮,菜单,javascript文件,如果有什么想法可以在opera中文官方论坛(http://www.operachina.com/)提问,论坛上有很多高手,他们会很热情的回答你的,
比如你可以问,如何将当前页添加到百度收藏,论坛上的人会直接给你代码:
Item, "添加到百度收藏" ="Go to page, "javascript:window.open('http://cang.baidu.com/do/add?it='+encodeURIComponent(document.title.substring(0,76))+'&iu='+encodeURIComponent(location.href)+'&fr=ien#nw=1','_blank','scrollbars=no,width=600,height=450,left=75,top=20,status=no,resizable=yes');""
目前比较多的插件可能是有个程序,希望去处理页面,启动程序有好几种方法,一般程序希望得到页面上的信息,可以像上面调用迅雷一样,通过javascript将页面信息获得(可以写入某个文件),然后通过javascript启动程序,并去读取那个写入的文件。javascript可能不会写,可以在opera官方论坛提问,高人会给你答案的。