Javascript不能做什么?
Posted wssjzw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Javascript不能做什么?相关的知识,希望对你有一定的参考价值。
Web浏览器针对恶意代码的第一道防线就是它们不支持某些功能。例如,客户端 javascrip 没有权限来写入或删除客户计算机上的任意文件或列出任意目录。这意味着javascript程序不能删除数据或植入病毒。
类似的,客户端javascript没有任何通用的网络能力。客户端javascript程序可以对HTTP协议编程;并且html5的一个附属标准叫做WebSockets,定义了一个类套接字的API,用于和指定的服务器通信。但是,这些API都不允许和范围更广的网络进行直接访问。通用的 Internet 客户端和服务器不能同时使用客户端javascript来写【我们不能基于浏览器写出一个”服务器“,网络中的浏览器和浏览器之间无法直接进行通信】
浏览器针对恶意代码的第二条防线是在自己支持的某些功能上施加限制。以下是一些功能限制:
- javascript程序可以打开一个新的浏览器窗口,但是为了防止广告商滥用弹出窗口,很多浏览器限制了这一功能,使得只有为了响应鼠标单击这样的用户触发事件的时候,才能使用它。
- javascript程序可以关闭自己打开的浏览器窗口,但是不允许它不经过用户确认就关闭其他的窗口
- HTML FileUpload 元素的value属性是只读的如果可以设置这个属性,脚本就能设置它为任意期望的文件名,从而导致表单上传指定文件(比如密码文件)的内容到服务器
- 脚本不能读取从不同服务器载入的文档的内容【严格来讲这些服务器来自不同的域,端口或协议】,除非这个就是包含该脚本的文档,。类似地,一个脚本不能在来自不同服务器的文档上注册事件监听器。这就防止脚本窃取其他页面的用户输入(例如,组成一个密码项的键盘单击过程)、这一限制叫做同源策略(same-origin policy)。
以上是关于Javascript不能做什么?的主要内容,如果未能解决你的问题,请参考以下文章