比如将某个网页上的图片提交到yupoo,yupoo官方并不提供适用于opera的解决方案。那么我们其实可以下载它的ie右键菜单注册表插件,来自行研究。
然后会发现,ie右键菜单的提交到yupoo,是提交到http://www.yupoo.com/photos/uploadbybookmarklet这个网址的,那么我们用下载工具把这个网址对应的html文件搞下来。可以看到,源代码中关键部分是这个样子。
QUOTE:
<script type="text/javascript">
if (external.menuArguments) {
var srcEvent = external.menuArguments.event;
var EventElement = external.menuArguments.document.elementFromPoint ( srcEvent.clientX, srcEvent.clientY );
var url = EventElement.href;
var title = external.menuArguments.document.title;
var alt = EventElement.alt;
var purl = external.menuArguments.location.href;
void(window.open('http://www.yupoo.com/photos/saveBookmarklet?ppn='+escape(title)+'&ppu='+escape(url)+'&alt='+escape(alt)+'&purl='+escape(purl)));
} else {
location.href="http://www.yupoo.com/";
}
</script>
我们其实可以把这段代码添加到书签,让它在个人栏显示,就可以大致方便的实现提交图片到相册的功能了。
但是因为我的个人栏平时是不显示的,所以我希望能在右键菜单中实现这个功能。
那么我们的注意力就集中在上面这段红色代码中。代码中url、title等都是脚本里新设置的变量,opera右键菜单并不支持,因此我们的主要工作就是要把这些变量用opera可以理解的东西替换掉。
首先来看opera内建的传递参数
%s is the filename of local source cache 可以理解为当前焦点指向的文件名。比如右键点击一个图片时,%s就是这个图片名。比如我们的logo是http://www.chong4.com/bbs/images/chong4/logo8.gif,那么%s就是logo8。
%t is currently selected text 当前选择的文本内容
%c is the clipboard content 当前剪贴板中内容
%u is active document url 当前页面的url
%l is the address of a link you right-click 当前右键点击的链接地址
现在我们把内建参数拿去替换掉原来yupoo的代码
QUOTE:
Item, "add 2 Yupoo" = Copy image address & Go to page,"javascript:void(window.open('http://www.yupoo.com/photos/saveBookmarklet?ppn=%s'+'&ppu=%c'+'&alt=%s'))
以上代码添加到.\profile\menu\,编辑进你当前使用的菜单ini文件中的image popup menu和image link popup menu即可。
[ 本帖最后由 thenew 于 2006-8-8 01:06 AM 编辑 ]