我这段代码有alert的提醒,但是打开文本发现没有写进去。求各位博友指点
1 <script type="text/javascript"> 2 var n=document.getElementById("name").value; 3 var m=document.getElementById("mail").value; 4 var a=document.getElementById("advice").value; 5 if(n != null && m != null && a != null){ 6 document.getElementById("OK").onclick=function(){ 7 alert('真心感谢您在百忙之中给予我们留言,我们将尽快给您回复!'); 8 var ForAppending = 8;//1为只读,2为只写,8为追加 9 var strFile = "F:\web1\advice\liuyan.txt"; 10 var objFSO = new ActiveXObject("Scripting.FileSystemObject"); 11 // 检查文件是否存在 12 if (objFSO.FileExists(strFile)) { 13 // 打开文本文件 14 var objStream = objFSO.OpenTextFile(strFile,ForAppending,true); 15 // 写入字符串数据 16 objStream.WriteLine(n.value); 17 objStream.WriteLine(m.value); 18 objStream.WriteLine(a.value); 19 objStream.WriteLine(""); 20 document.write("保存成功!<br>"); 21 objStream.Close(); // 关闭文件 22 } 23 else{ 24 document.write("未知错误!请联系网站管理员!<br>"); 25 } 26 } 27 } 28 </script>
抛开权限问题先不管(写文件应该是服务端的事吧,放到JS中那留言不是留到客户的电脑上了),这段JS代码好像本来就有逻辑问题吧,if(n != null && m != null && a != null)这个判断应该放在onclick的function中吧
这个代码是我从网页上截取的一段,是放在服务器上面运行的,还有,你说的这个if(n != null && m != null && a != null)只是一个简单的判断,其实在服务器上我写了很多提醒代码,还有输入格式的判断,为了方便你们看,我只换了这个简单的判断,抱歉,这点我没说明
@thyou:判断语句所在的位置不管也罢,影响的是不满足条件时连onclick事件都无法注册。你的意思是这个页面是仅供服务器上的浏览器本地访问?
@nicky0227: 这点您说的极是,这个网页是放在服务器上的,也配置了IIS服务,我通过内网IP访问网页,您的意思我似乎明白了,这个路径有问题是吗?
@thyou: 只有IE支持,且要设置,IE -> Internet选项 -> 安全 -> 自定义级别 -> ActiveX控件和插件 -> 对未标记为可安全执行脚本的ActiveX控件初始化并执行脚本(不安全) -> 启用
@nicky0227: 谢谢
多半权限嘛。现在系统对硬件资源访问越来越多安全限制。
这个考虑过,我改了那个文件夹的权限,共享为everyone
JS现在能随便操作文件系统了?
在IE浏览器下是支持的,其它浏览器都不支持。我昨天才用了这个。。
我刚刚试了,在IE下面也不行,有没有解决办法?
Jquery可以吗?
@thyou: 我昨天也百度过。好像是不行呀,只有IE出了支持FSO的插件
你这个路径是必要的吗?我刚做了js下载,下载到浏览器默认文件夹,可以跨浏览器。如果要指定路径,最好在后端实现。
我是想后端实现,现在已经明白,js实现不了后端的,谢谢