CODE: [Copy to clipboard]
<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:\资料,可以根据源码提示自定义路径!