本示例要实现的功能是通过用户安装reg文件,给浏览器添加右键菜单“收藏到我的网站”,这样以后用户上网的时候就可以通过选中内容右键“收藏到我的网站”,就会把用户选中的数据提交给指定网页
同时我增加了一个判断,如果用户没有选中,直接在图片上点右键收藏的话可以把这个图片的地址获取到,以判断用户是否需要收藏图片。
一共需要3个文件,reg需要提供给用户下载,另外两个是网站的处理页面。
注册表文件
mm.reg
REGEDIT4
;Generated with Registry Explorer
;http://www.regxplor.com
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt]
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\收藏到我的网站]
@="http://localhost/test.html"
test.html
if (external.menuArguments) {
var parentwin = external.menuArguments;
var srcEvent = external.menuArguments.event;
var doc = parentwin.document;
var eventElement = doc.elementFromPoint ( srcEvent.clientX, srcEvent.clientY );
var srcImage = eventElement;
var isOnImage = false;
isOnImage = (srcImage && srcImage.tagName == 'IMG');
// 如果选中的是一片区域,将选中区域的HTML复制到剪贴板
if (doc.selection) {
var sel = doc.selection.createRange().htmlText;
var cpb = parentwin.clipboardData;
cpb.setData("Text",sel.toString());
}
if (!sel) {
var sel = '';
//如果是在图片上点击收藏,那么进行图片保存
if(isOnImage){
var str = new String(srcImage.href.toString());
alert('只是在图片上点击了右键,并未选中任何文本');
alert(str);
}
}
var url = parentwin.location.href;
var title = parentwin.document.title;
if (parentwin.event.srcElement.tagName == "A") {
url = parentwin.event.srcElement.getAttribute("HREF");
title = parentwin.event.srcElement.innerText;
}
void(window.open('http://localhost/favorites.aspx?t='+escape(title)+'&u='+escape(url)+'&c='+escape(sel),'_blank','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'))
} else {
history.go(-1);
}
favorites.aspx