Board logo

标题: [转+改]方便的右键保存脚本 [打印本页]

作者: electronixtar     时间: 2006-5-23 19:28    标题: [转+改]方便的右键保存脚本

上网时很多资料要保存,Ctrl+C,打开记事本,Ctrl+V,选路径,输入文件名,保存…………你觉得麻烦不?用以下脚本可以在InternetExplorer里加入一个菜单,遇到精彩的文章直接框选,点右键,保存,搞定!


把下面的的代码保存为E:\Script\savetext.html(因为下面要用这个路径,所以不要乱改。要改的话请保证下面的reg和你存放的savetext.htmll路径的一致)
<SCRIPT LANGUAGE = "JavaScript">

var oWindow = window.external.menuArguments;  //获得执行Save Text菜单项的文档的window对象
var oDocument = oWindow.document;
var oSelect = oDocument.selection;
var oSelectRange = oSelect.createRange();
var selectText = oSelectRange.text; //获得所选择的文字.
var tFilename;

if (selectText.length == 0 || !/\S/.test(selectText)) {
    alert("请先选择一段文字!");
}
else {
    //去除文字前面的空字符.
    selectText = selectText.replace(/^(\s+)(\S+)/,"$2");
    //取得文字的第一行.
    tFilename = /\n/.test(selectText) ? selectText.substring(0,selectText.search(/\n/)) : selectText;
    tFilename = tFilename.length > 18 ? tFilename.substring(0,10) + "..." + tFilename.substring(tFilename.length-6,tFilename.length) : tFilename;
    //去除文件名中的换行符、换页符、回车符.
    tFilename = tFilename.replace(/\n|\r|\f/g,"");
    var errorChar=/(\\|\/|:|\*|\?|"|\<|\>|\|)/
    //如果文件名中存在非法字符,则让用户输入文件名.
    while (errorChar.test(tFilename) || tFilename==null) {
        tFilename=prompt("由于所选文字中包含\ / : * ? < >等不能作为文件名的字符,请重新输入要存储的文件名(不需添加扩展名).",tFilename);
    }
    var fso, fl, fname;
    fso = new ActiveXObject("Scripting.FileSystemObject");


    //这里是保存资料的位置,请根据个人情况更改。请保证路径的存在!
    fname="D:\\资料\\" +tFilename+ ".txt";



    if (fso.FileExists(fname)) {
        if (confirm(fname + "已经存在,要替换它吗?")) {
            fl = fso.CreateTextFile(fname,true);
            fl.Write(selectText);
            fl.Close();
            alert(fname+" 保存成功!");
        }
    }
    else {
        fl = fso.CreateTextFile(fname,true);
        fl.Write(selectText);
        fl.Close();
        oWindow.status = "保存成功!";
    }
}
</SCRIPT>
资料默认存放在 D:\资料,可以根据源码提示自定义路径!


保存下列代码为savetext.reg
REGEDIT4

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\&SaveText]
"contexts"=dword:000000f3
@="E:\\script\\savetext.html"
双击这个savetext.reg导入注册表(重装系统后也可以用这个恢复)

重启InternetExplorer,打开一段文字,看看右键~~是不是多了什么!

[ Last edited by electronixtar on 2006-5-24 at 12:23 ]
作者: JonePeng     时间: 2006-5-23 20:49
精品!
作者: freeants001     时间: 2006-5-24 09:02
收藏了先!不错
作者: Climbing     时间: 2006-5-24 10:50
请问楼主:savetext.html是从哪里来的?
作者: electronixtar     时间: 2006-5-24 12:33
已经改正!谢谢批评!
作者: IceCrack     时间: 2006-7-23 16:49
看看效果如何
作者: fastslz     时间: 2006-7-23 17:27
哈哈,效果不错  谢谢...electronixtar
最好打包一下,而且“D:\资料”要手动建立
建议已下载的资料放在E:\Script目录下面
作者: electronixtar     时间: 2006-7-23 19:01
介个……自己改不就得了~~写个bat也行~~
作者: NaturalJ0     时间: 2006-10-18 11:22
不介意我偷走顺便顶一计吧。
作者: lxmxn     时间: 2006-10-18 13:39

  顶一个.....继续发些好东东啊...支持中...

作者: wydos     时间: 2006-10-20 00:21
不知能不能弄个迅雷快捷下载。
下载时经常询问下载路径,感觉挺麻烦的。
作者: electronixtar     时间: 2006-10-20 00:38
楼上的能说清楚点吗?
作者: wydos     时间: 2006-10-20 06:28


  Quote:
Originally posted by electronixtar at 2006-10-20 00:38:
楼上的能说清楚点吗?

就是说,使用迅雷下载东西时,迅雷会询问你要保存的路径。我想达到的要求就是把保存的路径的对话框忽略,直接在右键添加保存路径。比如:下mp3时,直接点右键中"迅雷下载--mp3",保存路径提前预设好,就像savetext功能一样。
作者: electronixtar     时间: 2006-10-20 06:59
哦,这个……想了下,web网页没有这个权限。
作者: kennyfan     时间: 2006-10-20 08:07
好啊.看上去方便实用!~
作者: xyxFlysky     时间: 2006-10-20 09:15
今天试了下,不错,哈哈
作者: electronixtar     时间: 2006-10-20 09:42
大家觉得有什么好的想法可以跟帖提出,我可以改
作者: 3742668     时间: 2006-10-20 10:15
Right,可以尝试用SAFRCFileDlg.FileSave来保存文件,可以自动提示是否覆盖.
Set objDialog = CreateObject("SAFRCFileDlg.FileSave")

objDialog.FileName = "歌曲"
objDialog.FileType = ".lrc"
intRet = objDialog.OpenFileSaveDlg
   If intRet Then
       If InStr(objDialog.FileName,".") Then
           WScript.Echo objDialog.FileName
       Else
           WScript.Echo objDialog.FileName & objDialog.FileType
       End If
   Else
       WScript.Quit
   End If   

作者: utem999     时间: 2006-10-20 23:07
才发现的精品
作者: electronixtar     时间: 2006-10-20 23:28
呵呵。是的下一版改正。不过我喜欢一切 backgroud ,讨厌任何的提示。
作者: hellomop     时间: 2006-11-27 22:42
精彩无限
作者: hellomop     时间: 2006-11-27 22:57
想问一下
在GreenBrowser里保存好像不能自命名文件名?
作者: hellomop     时间: 2006-11-27 23:01
奇怪,刚刚在IE里还可以自命名保存的文件名
现在不行了?
作者: ccwan     时间: 2006-11-27 23:17
怎能不顶一下!
作者: ciao     时间: 2006-11-28 06:40
拿下  在说了!~
作者: ieutk     时间: 2006-11-30 12:55
嗯,不错呀!
作者: jmz573515     时间: 2006-12-16 00:15
真是精品!

麻烦楼主看看能不能实现这种功能?谢了!


请问怎么用右键调用一个VBS文件?

怎样在浏览网页时用鼠标选取一段文字后单击右键可以调用一个VBS文件,而这个VBS文件的功能是以选取的文字在指定的目录下建立一个文件夹,之后再读取当前游览网页的地址的一部分如果是http://www.cn-dos.net/forum/forumdisplay.php?fid=23的话就读取到http://www.cn-dos.net/forum
谢谢!
作者: ygrzzz     时间: 2008-9-26 23:08
用了几天非常喜欢这样简洁的操作,佩服·~~
作者: mufasa     时间: 2008-9-27 10:01
如果想保存图片怎么做 可以做到吗
作者: mufasa     时间: 2008-9-27 10:13
出现了一个 SaveFile菜单但是点击没有任何反应 也没有保存文件 是不是我的设置不正确