您好我的html / javascript代码有问题:
function rf()
{
var fs,file;
fs = new ActiveXObject('Scripting.FileSystemObject');
file = fs.OpenTextFile('/test123.txt',2);
file.Write('The text to write to file');
file.Close();
}
</script>
<button onclick="rf()">Try it</button>
</html>
我进入页面,点击按钮,没有成功。有人可以为我纠正这个吗?
答案 0 :(得分:1)
在任何版本中,即使Internet Explorer默认也不允许此构造 - 您需要手动切换一些非常危险的设置以允许此操作。浏览器中Javascript的全部目的是在浏览器进程中沙盒,并且无法访问,甚至更糟糕地写入周围的计算机及其文件系统。如果这段代码有效,那么什么会阻止某人对System32
文件夹中的文件做同样的事情?还是hiberfil.sys
?还是autoexec.bat
?毋庸置疑,您尝试实现的目标不能也不应该在任何计算机上,任何浏览器中都能正常工作。
Microsoft documentation on the subject:
因为在客户端使用FSO可能会提供 不受欢迎的访问客户端的本地文件系统,你应该使用它 仅在服务器端执行的脚本中。 Internet Explorer默认 安全设置不允许客户端使用FileSystemObject 宾语。覆盖这些默认值可能会使本地计算机受到影响 不受欢迎的访问文件系统,这可能导致总数 破坏文件系统的完整性,导致数据丢失,或 差。