我可以删除WSCRIPT.EXE和JSCRIPT.EXE文件吗?

chenypluck 2003-08-12 08:39:32
我看到有资料介绍,为了防止VBScript病毒发作,要删除WSCRIPT.EXE和JSCRIPT.EXE文件 。我想问一下这两个文件有什么作用?删除后对正常运行有什么影响?谢谢
...全文
682 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenypluck 2003-08-20
  • 打赏
  • 举报
回复
谢谢
zb_china 2003-08-15
  • 打赏
  • 举报
回复
脚本解释器,没有这个会出很多麻烦的。还是升级病毒库要紧
alexdyong 2003-08-15
  • 打赏
  • 举报
回复
对 及时升级杀毒软件基本可以对付这样的东东!
liaoguangnan 2003-08-14
  • 打赏
  • 举报
回复
这是两个脚本执行程序,是执行js脚本和ws脚本的原打载程序!!

如果删除的话,网页的js和ws的脚本不能在执行!!
chenypluck 2003-08-13
  • 打赏
  • 举报
回复
这两个文件的作用是什么呢
liaoguangnan 2003-08-12
  • 打赏
  • 举报
回复
我想没有那个必要,只要你下载了最新的杀毒软件就行!
chenypluck 2003-08-12
  • 打赏
  • 举报
回复
请多指教
Windows 脚本技术参考手册(CHM)目录:Windows 脚本技术 Windows 脚本技术 JScript VBScript 脚本运行时 Dictionary 对象 FileSystemObject 对象 脚本 Encoder 使用脚本 Encoder 脚本 Encoder 语法 脚本编码示例 Windows 脚本宿主 入门 WSH 5.6 的新增功能 将 Windows 脚本宿主升级 文档约定 WSH 版本信息 Windows 脚本宿主基础 什么是 WSH? 脚本和 Windows 自动化 脚本文件的类型 宿主环境和脚本引擎 创建可由 WSH 使用的脚本 将脚本分成可重复利用的部分 Windows 脚本宿主对象模型 运行脚本 使用 Windows 脚本文件 (.wsf) WSH 拖放支持 设置和自定义脚本属性 (.wsh) 在命令提示符下运行脚本 从 Windows 运行脚本 WScript.exe 和 CScript.exe 选项 运行脚本需要包括的内容 设置远程 WSH Windows 脚本宿主的基本任务 访问网络 访问网络连接 控制网络打印机 创建自动登录脚本 驱动应用程序 执行文件管理操作 复制文件文件夹 映射到特殊文件夹 管理快捷方式 复制快捷方式 创建快捷方式 删除快捷方式 移动快捷方式 操纵系统注册表 远程运行脚本 对脚本进行签名 WSH 和 Windows 管理规范 (WMI) WSH 演练 WSH 网络管理员示例脚本 安全和 Windows 脚本宿主 CryptoAPI 工具 对脚本进行签名 软件限制策略 签名验证策略 验证脚本 参考 XML 元素 <?job?> 元素 <?XML?> 元素 <description> 元素 <example> 元素 <job> 元素 <named> 元素 <object> 元素 <package> 元素 <reference> 元素 <resource> 元素 <runtime> 元素 <script> 元素 <unnamed> 元素 <usage> 元素 对象 Scripting.Signer 对象 Scripting.Signer 对象的方法 WScript 对象 WScript 对象的属性和方法 WshArguments 对象 WshArguments 对象的属性和方法 WshController 对象 WshController 对象的方法 WshEnvironment 对象 WshEnvironment 对象的属性和方法 WshNamed 对象 WshNamed 对象的属性和方法 WshNetwork 对象 WshNetwork 对象的属性和方法 WshRemote 对象 WshRemote 对象的属性、方法和事件 WshRemoteError 对象 WshRemoteError 对象的属性 WshScriptExec 对象 WshScriptExec 对象的属性和方法 WshShell 对象 WshShell 对象的属性和方法 WshShortcut 对象 WshShortcut 对象的属性和方法 WshSpecialFolders 对象 WshSpecialFolders 对象的属性和方法 WshUnnamed 对象 WshUnnamed 对象的属性和方法 WshUrlShortcut 对象 WshUrlShortcut 对象的属性和方法 属性 Arguments 属性(Shortcut 对象) Arguments 属性(WScript 对象) AtEndOfLine 属性 AtEndOfStream 属性 BuildVersion 属性 Character 属性 Column 属性 ComputerName 属性 CurrentDirectory 属性 Description 属性 Description 属性 (WshRemoteError) Environment 属性 Error 属性 (WshRemote) ExitCode 属性 FullName 属性(WScript 对象) FullName 属性(WshShortcut 对象) FullName 属性(WshUrlShortcut 对象) Hotkey 属性 IconLocation 属性 Interactive 属性 Item 属性 Item 属性 (WshNamed) Item 属性 (WshUnnamed) length 属性(WshArguments 对象) length 属性(WshEnvironment 对象) length 属性(WshSpecialFolders 对象) Line 属性 (WScript) Line 属性 (WshRemoteError) Name 属性(WScript 对象) Named 属性 Number 属性 Path 属性 ProcessID 属性 RelativePath 属性 ScriptFullName 属性 ScriptName 属性 Source 属性 SourceText 属性 SpecialFolders 属性 Status 属性 (WshRemote) Status 属性 (WshScriptExec) StdErr 属性 (WScript) StdErr 属性 (WshScriptExec) StdIn 属性 (WScript) StdIn 属性 (WshScriptExec) StdOut 属性 (WScript) StdOut 属性 (WshScriptExec) TargetPath 属性 Unnamed 属性 UserDomain 属性 UserName 属性 Version 属性 WindowStyle 属性 WorkingDirectory 属性 方法 AddPrinterConnection 方法 AddWindowsPrinterConnection 方法 AppActivate 方法 Close 方法 ConnectObject 方法 Count 方法 CreateObject 方法 CreateScript 方法 CreateShortcut 方法 DisconnectObject 方法 Echo 方法 EnumNetworkDrives 方法 EnumPrinterConnections 方法 Exec 方法 Execute 方法 Exists 方法 ExpandEnvironmentStrings 方法 GetObject 方法 getResource 方法 LogEvent 方法 MapNetworkDrive 方法 Popup 方法 Quit 方法 Read 方法 ReadAll 方法 ReadLine 方法 RegDelete 方法 RegRead 方法 RegWrite 方法 Remove 方法 RemoveNetworkDrive 方法 RemovePrinterConnection 方法 Run 方法 Save 方法 SendKeys 方法 SetDefaultPrinter 方法 ShowUsage 方法 Sign 方法 SignFile 方法 Skip 方法 SkipLine 方法 Sleep 方法 Terminate 方法 (WshScriptExec) Verify 方法 VerifyFile 方法 Write 方法 WriteBlankLines 方法 WriteLine 方法 事件 End 事件 Error 事件 Start 事件 错误信息 //H 选项需要宿主名称。 //T 选项需要超时值。 已命名元素或未命名元素有重复的名称。 尝试用 //S 选项保存设置失败。 无法执行 — 参数列表太长。 无法写入 wsh.log。请向您的管理员咨询。 无法更改默认脚本宿主 找不到脚本的脚本引擎 找不到脚本文件script file name>。 无法从 stdin 中读取脚本。 无法保存设置。 命令行选项不匹配。 无法连接对象 <object name>。 无法定位自动化类名称 <automation class name>。 //E 选项需要脚本引擎的名称。 无法移除环境变量 <name>。 Windows 脚本宿主的执行失败。 //H 选项的宿主名称必须是 Windows 脚本宿主初始化失败。 不提供命令而调用 Exec 的尝试无效。 路径名称无效。 快捷方式路径名必须以 .lnk 或 .url 结尾。 //T 选项的超时值无效。 加载脚本 <script name> 失败。 加载设置失败。 缺少作业名称。 没有名为 <name> 的打印机。 找不到 <name> 的协议处理程序。 供读取的注册表项 <name> 中的根无效。 无法打开注册表项 <name> 供读取。 无法移除注册表项 <name>。 远程脚本对象只能执行一次。 脚本 <script name> 上的脚本执行时间超时。<script name> 的执行被终止。 脚本设置文件 <settings filename> 无效。 URL <name> 中的语法无效。 无法保存快捷方式 <name>。 无法将快捷方式目标设为 <name>。 <file name> 中没有文件扩展名。 没有文件扩展名 <file extension> 的脚本引擎。 未指定脚本文件。 无法运行远程脚本。 找不到作业 <job identifier>。 无法等待进程。 该平台不支持 Unicode。 指定了未知选项 <option designation>。 该计算机上的 Windows 脚本宿主访问被禁用。要获得详细信息,请与您的系统管理员联系。 Windows 脚本部件 脚本部件指南 脚本部件概述 Windows 脚本部件简介 脚本部件是如何运作的 创建脚本部件 脚本部件文件的内容 使用脚本部件向导 创建注册信息 说明方法 说明属性 说明事件 创建脚本部件类型库 引用其他部件 引用同一个程序包中的其他脚本部件 检查脚本部件文件中的错误 脚本部件文件和 XML 一致性 使用脚本部件 注册脚本部件 在应用程序中使用脚本部件 在宿主应用程序中处理脚本部件的事件 实现 ASP 脚本部件 实现 DHTML Behavior 脚本部件 创建 Behavior 脚本部件 在 Behavior 脚本部件中说明属性和方法 在 Behavior 脚本部件中说明自定义事件 脚本部件参考 <?component?> <?XML ?> <comment> 元素 createComponent 函数 <event> 元素 fireEvent 方法 getResource 函数 <implements> 元素 <method> 元素 <object> 元素 <package> 元素 <property> 元素 <public> 元素 <reference> 元素 <registration> 元素 <resource> 元素 <script> 元素 <component> 元素 Behavior 处理程序参考 <attach> 元素 attachNotification 方法 createEventObject 方法 element 属性 <layout> 元素 fireEvent 方法 Windows 脚本接口 SDK(英文) Introduction Windows Script Hosts Windows Script Engines Reference IActiveScript Interface IActiveScript::AddNamedItem IActiveScript::AddTypeLib IActiveScript::Clone IActiveScript::Close IActiveScript::GetCurrentScriptThreadID IActiveScript::GetScriptDispatch IActiveScript::GetScriptSite IActiveScript::GetScriptState IActiveScript::GetScriptThreadID IActiveScript::GetScriptThreadState. IActiveScript::InterruptScriptThread IActiveScript::SetScriptSite IActiveScript::SetScriptState IActiveScriptError Interface IActiveScriptError::GetExceptionInfo IActiveScriptError::GetSourceLineText IActiveScriptError::GetSourcePosition IActiveScriptParse Interface IActiveScriptParse::AddScriptlet IActiveScriptParse::InitNew IActiveScriptParse::ParseScriptText IActiveScriptSite Interface IActiveScriptSite::GetDocVersionString IActiveScriptSite::GetItemInfo IActiveScriptSite::GetLCID IActiveScriptSite::OnEnterScript IActiveScriptSite::OnLeaveScript IActiveScriptSite::OnScriptError IActiveScriptSite::OnScriptTerminate IActiveScriptSite::OnStateChange IActiveScriptSiteWindow Interface IActiveScriptSiteWindow::EnableModeless IActiveScriptSiteWindow::GetWindow IActiveScript Enumerations SCRIPTSTATE SCRIPTTHREADSTATE IDispatchEx Interface IDispatchEx Methods IDispatchEx::DeleteMemberByDispID IDispatchEx::DeleteMemberByName IDispatchEx::GetDispID IDispatchEx::GetMemberName IDispatchEx::GetMemberProperties IDispatchEx::GetNameSpaceParent IDispatchEx::GetNextDispID IDispatchEx::InvokeEx
在b/s开发中经常用到的javaScript技术整理 一、验证类 1、数字验证内 1.1 整数 1.2 大于0的整数 (用于传来的ID的验证) 1.3 负整数的验证 1.4 整数不能大于iMax 1.5 整数不能小于iMin 2、时间类 2.1 短时间,形如 (13:04:06) 2.2 短日期,形如 (2003-12-05) 2.3 长时间,形如 (2003-12-05 13:04:06) 2.4 只有年和月。形如(2003-05,或者2003-5) 2.5 只有小时和分钟,形如(12:03) 3、表单类 3.1 所有的表单的值都不能为空 3.2 多行文本框的值不能为空。 3.3 多行文本框的值不能超过sMaxStrleng 3.4 多行文本框的值不能少于sMixStrleng 3.5 判断单选框是否选择。 3.6 判断复选框是否选择. 3.7 复选框的全选,多选,全不选,反选 3.8 文件上传过程中判断文件类型 4、字符类 4.1 判断字符全部由a-Z或者是A-Z的字字母组成 4.2 判断字符由字母和数字组成。 4.3 判断字符由字母和数字,下划线,点号组成.且开头的只能是下划线和字母 4.4 字符串替换函数.Replace(); 5、浏览器类 5.1 判断浏览器的类型 5.2 判断ie的版本 5.3 判断客户端的分辨率 6、结合类 6.1 email的判断。 6.2 手机号码的验证 6.3 身份证的验证 二、功能类 1、时间与相关控件类 1.1 日历 1.2 时间控件 1.3 万年历 1.4 显示动态显示时钟效果(文本,如OA中时间) 1.5 显示动态显示时钟效果 (图像,像手表) 2、表单类 2.1 自动生成表单 2.2 动态添加,修改,删除下拉框中的元素 2.3 可以输入内容的下拉框 2.4 多行文本框中只能输入iMax文字。如果多输入了,自动减少到iMax个文字(多用 于短信发送) 3、打印类 3.1 打印控件 4、事件类 4.1 屏蔽右键 4.2 屏蔽所有功能键 4.3 --> 和<-- F5 F11,F9,F1 4.4 屏蔽组合键ctrl+N 5、网页设计类 5.1 连续滚动的文字,图片(注意是连续的,两段文字和图片中没有空白出现) 5.2 html编辑控件类 5.3 颜色选取框控件 5.4 下拉菜单 5.5 两层或多层次的下拉菜单 5.6 仿IE菜单的按钮。(效果如rongshuxa.com的导航栏目) 5.7 状态栏,title栏的动态效果(例子很多,可以研究一下) 5.8 双击后,网页自动滚屏 6、树型结构。 6.1 asp+SQL版 6.2 asp+xml+sql版 6.3 java+sql或者java+sql+xml 7、无边框效果的制作 8、连动下拉框技术 9、文本排序 一、验证类 1、数字验证内 1.1 整数 /^(-|\\+)?\\d+$/.test(str) 1.2 大于0的整数 (用于传来的ID的验证) /^\\d+$/.test(str) 1.3 负整数的验证 /^-\\d+$/.test(str) 2、时间类 2.1 短时间,形如 (13:04:06) function isTime(str) { var a = str.match(/^(\\d{1,2})(:)?(\\d{1,2})\\2(\\d{1,2})$/); if (a == null) {alert(\'输入的参数不是时间格式\'); return false;} if (a[1]>24 || a[3]>60 || a[4]>60) { alert(\"时间格式不对\"); return false } return true; } 2.2 短日期,形如 (2003-12-05) function strDateTime(str) { var r = str.match(/^(\\d{1,4})(-|\\/)(\\d{1,2})\\2(\\d{1,2})$/); if(r==null)return false; var d= new Date(r[1], r[3]-1, r[4]); return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate() ==r[4]); } 2.3 长时间,形如 (2003-12-05 13:04:06) function strDateTime(str) { var reg = /^(\\d{1,4})(-|\\/)(\\d{1,2})\\2(\\d{1,2}) (\\d{1,2}):(\\d{1,2}):(\\d{1,2})$/; var r = str.match(reg); if(r==null)return false; var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]); return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate() ==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r [7]); } 2.4 只有年和月。形如(2003-05,或者2003-5) 2.5 只有小时和分钟,形如(12:03) 3、表单类 3.1 所有的表单的值都不能为空 3.2 多行文本框的值不能为空。 3.3 多行文本框的值不能超过sMaxStrleng 3.4 多行文本框的值不能少于sMixStrleng 3.5 判断单选框是否选择。 3.6 判断复选框是否选择. 3.7 复选框的全选,多选,全不选,反选 3.8 文件上传过程中判断文件类型 4、字符类 4.1 判断字符全部由a-Z或者是A-Z的字字母组成 4.2 判断字符由字母和数字组成。 4.3 判断字符由字母和数字,下划线,点号组成.且开头的只能是下划线和字母 /^([a-zA-z_]{1})([\\w]*)$/g.test(str) 4.4 字符串替换函数.Replace(); 5、浏览器类 5.1 判断浏览器的类型 window.navigator.appName 5.2 判断ie的版本 window.navigator.appVersion 5.3 判断客户端的分辨率 window.screen.height; window.screen.width; 6、结合类 6.1 email的判断。 function ismail(mail) { return(new RegExp(/^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9] +)*\\.[A-Za-z0-9]+$/).test(mail)); } 6.2 手机号码的验证 6.3 身份证的验证 function isIdCardNo(num) { if (isNaN(num)) {alert(\"输入的不是数字!\"); return false;} var len = num.length, re; if (len == 15) re = new RegExp(/^(\\d{6})()?(\\d{2})(\\d{2})(\\d{2})(\\d{3})$/); else if (len == 18) re = new RegExp(/^(\\d{6})()?(\\d{4})(\\d{2})(\\d{2})(\\d{3})(\\d)$/); else {alert(\"输入的数字位数不对!\"); return false;} var a = num.match(re); if (a != null) { if (len==15) { var D = new Date(\"19\"+a[3]+\"/\"+a[4]+\"/\"+a[5]); var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate() ==a[5]; } else { var D = new Date(a[3]+\"/\"+a[4]+\"/\"+a[5]); var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4] &&D.getDate()==a[5]; } if (!B) {alert(\"输入的身份证号 \"+ a[0] +\" 里出生日期不对!\"); return false;} } return true; } 3.7 复选框的全选,多选,全不选,反选
全选






全选





<SCRIPT LANGUAGE=\"java script\"> function checkAll(str) { var a = document.getElementsByName(str); var n = a.length; for (var i=0; iSCRIPT> 3.8 文件上传过程中判断文件类型 画图: <SCRIPT> S.DrawingSurface.ArcDegrees(0,0,0,30,50,60); S.DrawingSurface.ArcRadians(30,0,0,30,50,60); S.DrawingSurface.Line(10,10,100,100); SCRIPT> 写注册表: <SCRIPT> var WshShell = WScript.CreateObject(\"WScript.Shell\"); WshShell.RegWrite (\"HKCU\\\\Software\\\\ACME\\\\FortuneTeller\\\\\", 1, \"REG_BINARY\"); WshShell.RegWrite (\"HKCU\\\\Software\\\\ACME\\\\FortuneTeller\\\\MindReader\", \"Goocher!\", \"REG_SZ\"); var bKey = WshShell.RegRead (\"HKCU\\\\Software\\\\ACME\\\\FortuneTeller\\\\\"); WScript.Echo (WshShell.RegRead (\"HKCU\\\\Software\\\\ACME\\\\FortuneTeller\\\\MindReader\")); WshShell.RegDelete (\"HKCU\\\\Software\\\\ACME\\\\FortuneTeller\\\\MindReader\"); WshShell.RegDelete (\"HKCU\\\\Software\\\\ACME\\\\FortuneTeller\\\\\"); WshShell.RegDelete (\"HKCU\\\\Software\\\\ACME\\\\\"); SCRIPT> TABLAE相关(客户端动态增加行列) <SCRIPT LANGUAGE=\"JScript\"> function numberCells() { var count=0; for (i=0; i < document.all.mytable.rows.length; i++) { for (j=0; j < document.all.mytable.rows(i).cells.length; j++) { document.all.mytable.rows(i).cells(j).innerText = count; count++; } } } SCRIPT>
    
    
    
1.身份证严格验证: <script> var aCity={11:\"北京\",12:\"天津\",13:\"河北\",14:\"山西\",15:\"内蒙古\",21:\"辽宁\",22:\"吉 林\",23:\"黑龙江\",31:\"上海\",32:\"江苏\",33:\"浙江\",34:\"安徽\",35:\"福建\",36:\"江 西\",37:\"山东\",41:\"河南\",42:\"湖北\",43:\"湖南\",44:\"广东\",45:\"广西\",46:\"海南\",50:\" 重庆\",51:\"四川\",52:\"贵州\",53:\"云南\",54:\"西藏\",61:\"陕西\",62:\"甘肃\",63:\"青 海\",64:\"宁夏\",65:\"新疆\",71:\"台湾\",81:\"香港\",82:\"澳门\",91:\"国外\"} function cidInfo(sId){ var iSum=0 var info=\"\" if(!/^\\d{17}(\\d|x)$/i.test(sId))return false; sId=sId.replace(/x$/i,\"a\"); if(aCity[parseInt(sId.substr(0,2))]==null)return \"Error:非法地区\"; sBirthday=sId.substr(6,4)+\"-\"+Number(sId.substr(10,2))+\"-\"+Number (sId.substr(12,2)); var d=new Date(sBirthday.replace(/-/g,\"/\")) if(sBirthday!=(d.getFullYear()+\"-\"+ (d.getMonth()+1) + \"-\" + d.getDate())) return \"Error:非法生日\"; for(var i = 17;i>=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt (17 - i),11) if(iSum%11!=1)return \"Error:非法证号\"; return aCity[parseInt(sId.substr(0,2))]+\",\"+sBirthday+\",\"+(sId.substr (16,1)%2?\"男\":\"女\") } document.write(cidInfo(\"380524198002300016\"),\"
\"); document.write(cidInfo(\"340524198002300019\"),\"
\") document.write(cidInfo(\"340524197711111111\"),\"
\") document.write(cidInfo(\"34052419800101001x\"),\"
\"); script> 2.验证IP地址 <SCRIPT LANGUAGE=\"java script\"> function isip(s){ var check=function(v){try{return (v<=255 && v>=0)}catch(x){return false}}; var re=s.split(\".\") return (re.length==4)?(check(re[0]) && check(re[1]) && check(re[2]) && check(re[3])):false } var s=\"202.197.78.129\"; alert(isip(s)) SCRIPT> 3.加sp1后还能用的无边框窗口!! Chromeless Window <SCRIPT LANGUAGE=\"JScript\"> /*--- Special Thanks For andot ---*/ /* This following code are designed and writen by Windy_sk You can use it freely, but u must held all the copyright items! */ /*--- Thanks For andot Again ---*/ var CW_width = 400; var CW_height = 300; var CW_top = 100; var CW_left = 100; var CW_url = \"/\"; var New_CW = window.createPopup(); var CW_Body = New_CW.document.body; var content = \"\"; var CSStext = \"margin:1px;color:black; border:2px outset;border- style:expression(onmouseout=onmouseup=function() {this.style.borderStyle=\'outset\'}, onmousedown=function(){if(event.button! =2)this.style.borderStyle=\'inset\'});background- color:buttonface;width:16px;height:14px;font-size:12px;line- height:11px;cursor:Default;\"; //Build Window include.startDownload(CW_url, function(source){content=source}); function insert_content(){ var temp = \"\"; CW_Body.style.overflow = \"hidden\"; CW_Body.style.backgroundColor = \"white\"; CW_Body.style.border = \"solid black 1px\"; content = content.replace(/
]*)>/g,\"\"); temp += \"\"; temp += \"\"; temp += \"\"; temp += \"
Chromeless Window For IE6 SP1\"; temp += \"?\"; temp += \"0\"; temp += \"1\"; temp += \"x\"; temp += \"
\"; temp += \"
\"; temp += content; temp += \"
\"; temp += \"
\"; CW_Body.innerHTML = temp; } setTimeout(\"insert_content()\",1000); var if_max = true; function show_CW(){ window.moveTo(10000, 10000); if(if_max){ New_CW.show(CW_top, CW_left, CW_width, CW_height); if(typeof(New_CW.document.all.include)!=\"undefined\"){ New_CW.document.all.include.style.width = CW_width; New_CW.document.all.Max.innerText = \"1\"; } }else{ New_CW.show(0, 0, screen.width, screen.height); New_CW.document.all.include.style.width = screen.width; } } window.onfocus = show_CW; window.onresize = show_CW; // Move Window var drag_x,drag_y,draging=false function drag_move(e){ if (draging){ New_CW.show(e.screenX-drag_x, e.screenY-drag_y, CW_width, CW_height); return false; } } function drag_down(e){ if(e.button==2)return; if(New_CW.document.body.offsetWidth==screen.width && New_CW.document.body.offsetHeight==screen.height)return; drag_x=e.clientX; drag_y=e.clientY; draging=true; e.srcElement.setCapture(); } function drag_up(e){ draging=false; e.srcElement.releaseCapture(); if(New_CW.document.body.offsetWidth==screen.width && New_CW.document.body.offsetHeight==screen.height) return; CW_top = e.screenX-drag_x; CW_left = e.screenY-drag_y; } SCRIPT> 电话号码的验证 要求:   (1)电话号码由数字、\"(\"、\")\"和\"-\"构成   (2)电话号码为3到8位   (3)如果电话号码中包含有区号,那么区号为三位或四位   (4)区号用\"(\"、\")\"或\"-\"和其他部分隔开   (5)移动电话号码为11或12位,如果为12位,那么第一位为0   (6)11位移动电话号码的第一位和第二位为\"13\"   (7)12位移动电话号码的第二位和第三位为\"13\"   根据这几条规则,可以与出以下正则表达式:   (^[0-9]{3,4}\\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\\([0-9]{3,4}\\)[0-9]{3,8}$)|(^0{0,1} 13[0-9]{9}$) <script language=\"java script\"> function PhoneCheck(s) { var str=s; var reg=/(^[0-9]{3,4}\\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\\([0-9]{3,4}\\)[0-9]{3,8}$)|(^0 {0,1}13[0-9]{9}$)/ alert(reg.test(str)); } script> 具有在输入非数字字符不回显的效果,即对非数字字符的输入不作反应。 function numbersonly(field,event){ var key,keychar; if(window.event){ key = window.event.keyCode; } else if (event){ key = event.which; } else{ return true } keychar = String.fromCharCode(key); if((key == null)||(key == 0)||(key == 8)||(key == 9)||(key == 13)||(key == 27)){ return true; } else if((\"0123456789.\").indexOf(keychar)>-1){ window.status = \"\"; return true; } else { window.status = \"Field excepts numbers only\"; return false; } } 验证ip str=document.RegExpDemo.txtIP.value; if(/^(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$/.test(str)==false) { window.alert(\'错误的IP地址格式\'); document.RegExpDemo.txtIP.select(); document.RegExpDemo.txtIP.focus(); return; } if(RegExp.$1<1 || RegExp.$1>254||RegExp.$2<0||RegExp.$2>254||RegExp.$3<0||RegExp.$3>2 54||RegExp.$4<1||RegExp.$4>254) { window.alert(\'错误的IP地址\'); document.RegExpDemo.txtIP.select(); document.RegExpDemo.txtIP.focus(); return; } //剔除 如 010.020.020.03 前面 的0 var str=str.replace(/0(\\d)/g,\"$1\"); str=str.replace(/0(\\d)/g,\"$1\"); window.alert(str);
Javascript小技巧一箩筐 事件源对象 event.srcElement.tagName event.srcElement.type 捕获释放 event.srcElement.setCapture(); event.srcElement.releaseCapture(); 事件按键 event.keyCode event.shiftKey event.altKey event.ctrlKey 事件返回值 event.returnValue 鼠标位置 event.x event.y 窗体活动元素 document.activeElement 绑定事件 document.captureEvents(Event.KEYDOWN); 访问窗体元素 document.all("txt").focus(); document.all("txt").select(); 窗体命令 document.execCommand 窗体COOKIE document.cookie 菜单事件 document.oncontextmenu 创建元素 document.createElement("SPAN"); 根据鼠标获得元素: document.elementFromPoint(event.x,event.y).tagName=="TD document.elementFromPoint(event.x,event.y).appendChild(ms) 窗体图片 document.images[索引] 窗体事件绑定 document.onmousedown=scrollwindow; 元素 document.窗体.elements[索引] 对象绑定事件 document.all.xxx.detachEvent("onclick",a); 插件数目 navigator.plugins 取变量类型 typeof($js_libpath) == "undefined" 下拉框 下拉框.options[索引] 下拉框.options.length 查找对象 document.getElementsByName("r1"); document.getElementById(id); 定时 timer=setInterval("scrollwindow()",delay); clearInterval(timer); UNCODE编码 escape() ,unescape 父对象 obj.parentElement(dhtml) obj.parentNode(dom) 交换表的行 TableID.moveRow(2,1) 替换CSS document.all.csss.href = "a.css"; 并排显示 display:inline 隐藏焦点 hidefocus=true 根据宽度换行 style="word-break:break-all" 自动刷新 简单邮件 快速转到位置 obj.scrollIntoView(true) 锚 anchors 网页传递参数 location.search(); 可编辑 obj.contenteditable=true 执行菜单命令 obj.execCommand 双字节字符 /[^x00-xff]/ 汉字 /[u4e00-u9fa5]/ 让英文字符串超出表格宽度自动换行 word-wrap: break-word; word-break: break-all; 透明背景 获得style内容 obj.style.cssText HTML标签 document.documentElement.innerHTML 第一个style标签 document.styleSheets[0] style标签里的第一个样式 document.styleSheets[0].rules[0] 防止点击空链接时,页面往往重置到页首端。 word 上一网页源 asp: request.servervariables("HTTP_REFERER") javascript: document.referrer 释放内存 CollectGarbage(); 禁止右键 document.oncontextmenu = function() { return false;} 禁止保存 script>script> 禁止选取 地址栏图标 favicon.ico 名字最好不变16*16的16色,放虚拟目录根目录下 收藏栏图标 查看源码 关闭输入法 自动全选 ENTER键可以让光标移到下一个输入框 文本框的默认值 title换行 obj.title = "123 sdfs " 获得时间所代表的微秒 var n1 = new Date("2004-10-10".replace(/-/g, "/")).getTime() 窗口是否关闭 win.closed checkbox扁平
获取选中内容 document.selection.createRange().duplicate().text 自动完成功能 打开该功能 关闭该功能 窗口最大化 无关闭按钮IE window.open("aa.htm", "meizz", "fullscreen=7"); 统一编码/解码 alert(decodeURIComponent(encodeURIComponent("http://你好.com?as= hehe"))) encodeURIComponent对":"、"/"、";" 和 "?"也编码 表格行指示 //各种尺寸 s += " 网页可见区域宽:"+ document.body.clientWidth; s += " 网页可见区域高:"+ document.body.clientHeight; s += " 网页可见区域高:"+ document.body.offsetWeight +" (包括边线的宽)"; s += " 网页可见区域高:"+ document.body.offsetHeight +" (包括边线的宽)"; s += " 网页正文全文宽:"+ document.body.scrollWidth; s += " 网页正文全文高:"+ document.body.scrollHeight; s += " 网页被卷去的高:"+ document.body.scrollTop; s += " 网页被卷去的左:"+ document.body.scrollLeft; s += " 网页正文部分上:"+ window.screenTop; s += " 网页正文部分左:"+ window.screenLeft; s += " 屏幕分辨率的高:"+ window.screen.height; s += " 屏幕分辨率的宽:"+ window.screen.width; s += " 屏幕可用工作区高度:"+ window.screen.availHeight; s += " 屏幕可用工作区宽度:"+ window.screen.availWidth; //过滤数字 //特殊用途 //不缓存 //正则匹配匹配中文字符的正则表达式: [u4e00-u9fa5] 匹配双字节字符(包括汉字在内):[^x00-xff] 匹配空行的正则表达式: [s| ]* 匹配HTML标记的正则表达式:/<(.*)>.*|<(.*) />/ 匹配首尾空格的正则表达式:(^s*)|(s*$)(像vbscript那样的trim函数) 匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)* 匹配网址URL的正则表达式:http://([w-]+.)+[w-]+(/[w- ./?%&=]*)? 以下是例子: 利用正则表达式限制网页表单里的文本框输入内容: 用正则表达式限制只能输入中文:onkeyup="value=value.replace(/[^u4E00-u9FA5]/g,"")" onbeforepaste="clipboardData.setData("text",clipboardData.getData("text").replace(/[^u4E00-u9FA5]/g,""))" 1.用正则表达式限制只能输入全角字符: onkeyup="value=value.replace(/[^uFF00-uFFFF]/g,"")" onbeforepaste="clipboardData.setData("text",clipboardData.getData("text").replace(/[^uFF00-uFFFF]/g,""))" 2.用正则表达式限制只能输入数字:onkeyup="value=value.replace(/[^d]/g,"") "onbeforepaste="clipboardData.setData("text",clipboardData.getData("text").replace(/[^d]/g,""))" 3.用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[W]/g,"") "onbeforepaste="clipboardData.setData("text",clipboardData.getData("text").replace(/[^d]/g,""))" //消除图像工具栏 or //无提示关闭 function Close() { var ua=navigator.userAgent var ie=navigator.appName=="Microsoft Internet Explorer"?true:false if(ie) { var IEversion=parseFloat(ua.substring(ua.indexOf("MSIE ")+5,ua.indexOf(";",ua.indexOf("MSIE ")))) if(IEversion< 5.5) { var str = "" str += ""; document.body.insertAdjacentHTML("beforeEnd", str); document.all.noTipClose.Click(); } else { window.opener =null; window.close(); } } else { window.close() } } //取得控件得绝对位置(1) <script language="javascript"> function getoffset(e) { var t=e.offsetTop; var l=e.offsetLeft; while(e=e.offsetParent) { t+=e.offsetTop; l+=e.offsetLeft; } var rec = new Array(1); rec[0] = t; rec[1] = l; return rec } script> //获得控件的绝对位置(2) oRect = obj.getBoundingClientRect(); oRect.left oRect. //最小化,最大化,关闭 //光标停在文字最后 <script language="javascript"> function cc() { var e = event.srcElement; var r =e.createTextRange(); r.moveStart("character",e.value.length); r.collapse(true); r.select(); } script> //页面进入和退出的特效 进入页面 推出页面 这个是页面被载入和调出时的一些特效。duration表示特效的持续时间,以秒为单位。transition表示使 用哪种特效,取值为1-23:   0 矩形缩小   1 矩形扩大   2 圆形缩小   3 圆形扩大   4 下到上刷新   5 上到下刷新   6 左到右刷新   7 右到左刷新   8 竖百叶窗   9 横百叶窗   10 错位横百叶窗   11 错位竖百叶窗   12 点扩散   13 左右到中间刷新   14 中间到左右刷新   15 中间到上下   16 上下到中间   17 右下到左上   18 右上到左下   19 左上到右下   20 左下到右上   21 横条   22 竖条   23 //网页是否被检索   其中属性值有以下一些:   属性值为"all": 文件将被检索,且页上链接可被查询;   属性值为"none": 文件不被检索,而且不查询页上的链接;   属性值为"index": 文件将被检索;   属性值为"follow": 查询页上的链接;   属性值为"noindex": 文件不检索,但可被查询链接;   属性值为"nofollow": //打印分页

page1

page2

//设置打印 <script language=javascript> function window.onload() { // -- advanced features factory.printing.SetMarginMeasure(2) // measure margins in inches factory.printing.SetPageRange(false, 1, 3) // need pages from 1 to 3 factory.printing.printer = "HP DeskJet 870C" factory.printing.copies = 2 factory.printing.collate = true factory.printing.paperSize = "A4" factory.printing.paperSource = "Manual feed" // -- basic features factory.printing.header = "居左显示&b居中显示&b居右显示页码,第&p页/共&P页" factory.printing.footer = "(自定义页脚)" factory.printing.portrait = false factory.printing.leftMargin = 0.75 factory.printing.topMargin = 1.5 factory.printing.rightMargin = 0.75 factory.printing.bottomMargin = 1.5 } function Print(frame) { factory.printing.Print(true, frame) // print with prompt } script>
具体使用手册,更多信息,点这里 //自带的打印预览 WebBrowser.ExecWB(1,1) 打开 Web.ExecWB(2,1) 关闭现在所有的IE窗口,并打开一个新窗口 Web.ExecWB(4,1) 保存网页 Web.ExecWB(6,1) 打印 Web.ExecWB(7,1) 打印预览 Web.ExecWB(8,1) 打印页面设置 Web.ExecWB(10,1) 查看页面属性 Web.ExecWB(15,1) 好像是撤销,有待确认 Web.ExecWB(17,1) 全选 Web.ExecWB(22,1) 刷新 Web.ExecWB(45,1) 关闭窗体无提示
ExecWB(6,1)> ExecWB(6,6)> ExecWB(8,1)>

ExecWB(7,1)>

//去掉打印时的页眉页脚 <script language="JavaScript"> var HKEY_Root,HKEY_Path,HKEY_Key; HKEY_Root="HKEY_CURRENT_USER"; HKEY_Path="\Software\Microsoft\Internet Explorer\PageSetup\"; //设置网页打印的页眉页脚为空 function PageSetup_Null() { try { var Wsh=new ActiveXObject("WScript.Shell"); HKEY_Key="header"; Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,""); HKEY_Key="footer"; Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,""); } catch(e){} } //设置网页打印的页眉页脚为默认值 function PageSetup_Default() { try { var Wsh=new ActiveXObject("WScript.Shell"); HKEY_Key="header"; Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"&w&b页码,&p/&P"); HKEY_Key="footer"; Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"&u&b&d"); } catch(e){} } script> //浏览器验证 function checkBrowser() { this.ver=navigator.appVersion this.dom=document.getElementById?1:0 this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom)?1:0; this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0; this.ie4=(document.all && !this.dom)?1:0; this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0; this.ns4=(document.layers && !this.dom)?1:0; this.mac=(this.ver.indexOf("Mac") > -1) ?1:0; this.ope=(navigator.userAgent.indexOf("Opera")>-1); this.ie=(this.ie6 || this.ie5 || this.ie4) this.ns=(this.ns4 || this.ns5) this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns5 || this.ns4 || this.mac || this.ope) this.nbw=(!this.bw) return this; } //计算内容宽和高 <SCRIPT language="javascript"> function test(obj) { var range = obj.createTextRange(); alert("内容区宽度: " + range.boundingWidth + "px 内容区高度: " + range.boundingHeight + "px"); } SCRIPT> //无模式的提示框 function modelessAlert(Msg) { window.showModelessDialog("javascript:alert(""+escape(Msg)+"");window.close();","","status:no;resizable:no;help:no;dialogHeight:height:30px;dialogHeight:40px;"); } //屏蔽按键 script>script> 屏蔽鼠标右键、Ctrl+N、Shift+F10、Alt+F4、F11、F5刷新、退格键 <script language="Javascript"> script> //可编辑SELECT //设置光标位置 function getCaret(textbox) { var control = document.activeElement; textbox.focus(); var rang = document.selection.createRange(); rang.setEndPoint("StartToStart",textbox.createTextRange()) control.focus(); return rang.text.length; } function setCaret(textbox,pos) { try { var r =textbox.createTextRange(); r.moveStart("character",pos); r.collapse(true); r.select(); } catch(e) {} } function selectLength(textbox,start,len) { try { var r =textbox.createTextRange(); r.moveEnd("character",len-(textbox.value.length-start)); r.moveStart("character",start); r.select(); } catch(e) {//alert(e.description)} } function insertAtCaret(textbox,text) { textbox.focus(); document.selection.createRange().text = text; } //页内查找 function findInPage(str) { var txt, i, found,n = 0; if (str == "") { return false; } txt = document.body.createTextRange(); for (i = 0; i <= n && (found = txt.findText(str)) != false; i++) { txt.moveStart("character", 1); txt.moveEnd("textedit"); } if (found) { txt.moveStart("character", -1); txt.findText(str); txt.select(); txt.scrollIntoView(); n++; } else { if (n > 0) { n = 0; findInPage(str); } else { alert(str + "... 您要找的文字不存在。 请试着输入页面中的关键字再次查找!"); } } return false; } //书 http://www.itpub.net/attachment.php?s=&postid=1894598 http://www.wrclub.net/down/listdown.aspx?id=1341//操作EXECL <script language="javascript"> function jStartExcel() { var xls = new ActiveXObject ( "Excel.Application" ); xls.visible = true; var newBook = xls.Workbooks.Add; newBook.Worksheets.Add; newBook.Worksheets(1).Activate; xls.ActiveWorkBook.ActiveSheet.PageSetup.Orientation = 2; xls.ActiveWorkBook.ActiveSheet.PageSetup.PaperSize = 5; newBook.Worksheets(1).Columns("A").columnwidth=50; newBook.Worksheets(1).Columns("A").WrapText = true; newBook.Worksheets(1).Columns("B").columnwidth=50; newBook.Worksheets(1).Columns("B").WrapText = true; newBook.Worksheets(1).Range("A1:B1000").NumberFormat = "0"; newBook.Worksheets(1).Range("A1:B1000").HorizontalAlignment = -4131; newBook.Worksheets(1).Cells(1,1).Interior.ColorIndex="15"; newBook.Worksheets(1).Cells(1,1).value="First Column, First Cell"; newBook.Worksheets(1).Cells(2,1).value="First Column, Second Cell"; newBook.Worksheets(1).Cells(1,2).value="Second Column, First Cell"; newBook.Worksheets(1).Cells(2,2).value="Second Column, Second Cell"; newBook.Worksheets(1).Name="My First WorkSheet"; } script> //自定义提示条 tip <script Language="JavaScript"> //***********默认设置定义.********************* tPopWait=50;//停留tWait豪秒后显示提示。 tPopShow=5000;//显示tShow豪秒后关闭提示 showPopStep=20; popOpacity=99; //***************内部变量定义***************** sPop=null; curShow=null; tFadeOut=null; tFadeIn=null; tFadeWaiting=null; document.write(""); document.write("
"); function showPopupText(){ var o=event.srcElement; MouseX=event.x; MouseY=event.y; if(o.alt!=null && o.alt!=""){o.dypop=o.alt;o.alt=""}; if(o.title!=null && o.title!=""){o.dypop=o.title;o.title=""}; if(o.dypop!=sPop) { sPop=o.dypop; clearTimeout(curShow); clearTimeout(tFadeOut); clearTimeout(tFadeIn); clearTimeout(tFadeWaiting); if(sPop==null || sPop=="") { dypopLayer.innerHTML=""; dypopLayer.style.filter="Alpha()"; dypopLayer.filters.Alpha.opacity=0; } else { if(o.dyclass!=null) popStyle=o.dyclass else popStyle="cPopText"; curShow=setTimeout("showIt()",tPopWait); } } } function showIt(){ dypopLayer.className=popStyle; dypopLayer.innerHTML=sPop; popWidth=dypopLayer.clientWidth; popHeight=dypopLayer.clientHeight; if(MouseX+12+popWidth>document.body.clientWidth) popLeftAdjust=-popWidth-24 else popLeftAdjust=0; if(MouseY+12+popHeight>document.body.clientHeight) popTopAdjust=-popHeight-24 else popTopAdjust=0; dypopLayer.style.left=MouseX+12+document.body.scrollLeft+popLeftAdjust; dypopLayer.style.top=MouseY+12+document.body.scrollTop+popTopAdjust; dypopLayer.style.filter="Alpha(Opacity=0)"; fadeOut(); } function fadeOut(){ if(dypopLayer.filters.Alpha.opacity0) { dypopLayer.filters.Alpha.opacity-=1; tFadeIn=setTimeout("fadeIn()",1); } } document.onmouseover=showPopupText; script> //插入文字 document.onclick =function(){ var oSource = window.event.srcElement; if(oSource.tagName!="DIV") return false; var sel = document.selection; if (sel!=null) { var rng = sel.createRange(); if (rng!=null) rng.pasteHTML("插入文字"); } } //netscapte下操作xml doc = new ActiveXObject("Msxml2.DOMDocument"); doc = new ActiveXObject("Microsoft.XMLDOM") ->> doc = (new DOMParser()).parseFromString(sXML,"text/xml") //判断键值 <script language="javascript"> var ie =navigator.appName=="Microsoft Internet Explorer"?true:false; function keyDown(e) { if(!ie) { var nkey=e.which; var iekey="现在是ns浏览器"; var realkey=String.fromCharCode(e.which); } if(ie) { var iekey=event.keyCode; var nkey="现在是ie浏览器"; var realkey=String.fromCharCode(event.keyCode); if(event.keyCode==32){realkey="" 空格""} if(event.keyCode==13){realkey="" 回车""} if(event.keyCode==27){realkey="" Esc""} if(event.keyCode==16){realkey="" Shift""} if(event.keyCode==17){realkey="" Ctrl""} if(event.keyCode==18){realkey="" Alt""} } alert("ns浏览器中键值:"+nkey+" "+"ie浏览器中键值:"+iekey+" "+"实际键为"+realkey); } document.onkeydown = keyDown; script> //Javascript Document.

请按任意一个键。。。。

//禁止FSO 1.注销组件 regsvr32 /u scrrun.dll 2.修改PROGID HKEY_CLASSES_ROOTScripting.FileSystemObject Scripting.FileSystemObject 3.对于使用object的用户,修改HKEY_CLASSES_ROOTScripting. //省略号
就是比如有一行文字,很长,表格内一行显示不下.
//检测media play版本 <SCRIPT> var flash=""; WMPVersion= oClientCaps.getComponentVersion("{22D6F312-B0F6-11D0-94AB-0080C74C7E95}","ComponentID"); if (WMPVersion != "") { flash = ""; var version = WMPVersion.split(","); var i; for (i = 0; i < version.length; i++) { if (i != 0) flash += "."; flash += version[i]; } document.write("您的Windows Media Player 版本是:"+flash+"

"); } SCRIPT> //图象按比例 <script language="JavaScript"> script> //细线SELECT function getComputerName() { var objWMIService = GetObject("Winmgmts:rootcimv2"); for(e = new Enumerator(objWMIService) ; !e.atEnd() ; e.moveNext()) { var getComputer = e.item(); return getComputer.Name; } } //条件编译 <script language=javascript> /*@cc_on @*/ /*@if (@_win32 && @_jscript_version>5) function window.confirm(str) { execScript("n = msgbox(""+ str +"", 257)", "vbscript"); return(n == 1); } @end @*/ script> //取得innerText <SCRIPT LANGUAGE="JavaScript"> SCRIPT> //mergeAttributes 复制所有读/写标签属性到指定元素。 <SCRIPT> function fnMerge(){ oSource.children[1].mergeAttributes(oSource.children[0]); } SCRIPT>

This is a sample DIV element.
This is another sample DIV element.
以上内容可以随意转载,转载后请注名来源和出处! 原文链接:http://ttyp.cnblogs.com/archive/2004/11/15/63900.aspx //Import function Import() { for( var i=0; iscript type="text/javascript" src="" + file + "">"); else document.write(""); } }; //js枚举 function getComputerName() { var objWMIService = GetObject("Winmgmts:rootcimv2"); for(e = new Enumerator(objWMIService) ; !e.atEnd() ; e.moveNext()) { var getComputer = e.item(); return getComputer.Name; } } //条件编译 <script language=javascript> /*@cc_on @*/ /*@if (@_win32 && @_jscript_version>5) function window.confirm(str) { execScript("n = msgbox(""+ str +"", 257)", "vbscript"); return(n == 1); } @end @*/ script> //取得innerText <SCRIPT LANGUAGE="JavaScript"> SCRIPT> //mergeAttributes 复制所有读/写标签属性到指定元素。 <SCRIPT> function fnMerge(){ oSource.children[1].mergeAttributes(oSource.children[0]); } SCRIPT>
This is a sample DIV element.
This is another sample DIV element.
电子书制作:源码爱好者

9,506

社区成员

发帖
与我相关
我的任务
社区描述
Windows专区 安全技术/病毒
社区管理员
  • 安全技术/病毒社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧