看了很多教材,里面介绍服务器端脚本和客户端脚本的区别的时候,只是简单的说明了下:客户端脚本解释和运行在客户端机器,服务端脚本解释运行在服务器,如果添加了runat=server字段,那么同样是解释和运行在服务器,但这其中还是有本质区别的,对吧?
举个例子:<script language="javascript" runat="server">
var fs=new ActiveXObject("Scripting.FileSystemObject");
var file=fs.CreateTextFile("e://test.txt",true);
file.WriteLine("hello");
file.Close();
</script>以上代码加了runat=server 但是建立文件还是在客户端,而不是在服务器上啊,这种情况该怎么理解呢?如果正确理解runat=server这句话的意思?
举个例子:<script language="javascript" runat="server">
var fs=new ActiveXObject("Scripting.FileSystemObject");
var file=fs.CreateTextFile("e://test.txt",true);
file.WriteLine("hello");
file.Close();
</script>以上代码加了runat=server 但是建立文件还是在客户端,而不是在服务器上啊,这种情况该怎么理解呢?如果正确理解runat=server这句话的意思?
不懂装懂<script language="Jscript" runat="server">
Response.Write("aaa");
</script>你自己做过了再说话
看看你组件的名字吧,服务端不叫这个
兄弟的玩笑开大了,呵呵。你应该听说过也有些人喜欢用javascript写服务端代码吧。。
我昨天测试的内容是:
同样的代码 加了runat可以在客户端E盘建立文件,如果不加runat,在客户端E盘都不能建立文件
同样的代码,如果把页面扩展名改成.jpg,那么无论如何在客户端都不能建立文件,这应该是出于安全问题吧?因为我问这个问题,本身就是由于学习asp上传木马漏洞引过来的。
我的意思是:
1、把你顶楼的代码保存为test.htm
2、测试的时候,你可以:
1)将test.htm放在客户端机器随便一个目录,用浏览器打开进行测试;
2) 将test.htm放在服务器上,由客户端浏览器来打开这个网页进行测试;
3、删去runat="server"重复步骤1-2;
4、比较四种方式下的结果P.S. 1-2楼rainsilence兄弟的说法是错的,别受误导
我承认说法是有点问题。其实最好的方法是打开页面后看源文件。所有在源文件中出现的代码都是在客户端执行的。所以,你可以加上runat=server看看效果。如果在客户端你看到<script runat=server这类的代码,就说明runat=server失效了。