我想尝试使用HTML上的小屏幕为文件提供输出。每次我点击按钮,我都希望替换文件中的文本。这是我写的代码:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>This is Web App</title>
</head>
<script>
function createDoc()
{
var doc=document.open("answer.txt","replace");
var txt="<html><body>You clicked Allow</body></html>";
doc.write(txt);
doc.close();
}
function createDoc2()
{
var doc=document.open("answer.txt","replace");
var txt="<html><body>You clicked Deny</body></html>";
doc.write(txt);
doc.close();
}
</script>
<body>
<h1> This is the visitor at your house</h1>
<img src = "./images/chef.gif" width="130" height="101" />
<br />
<button name="Yes" type="button" onclick="createDoc()">Allow! </button>
<button name="No" type="button" onclick="createDoc2()">Deny! </button>
</body>
</html>
我知道这不是正确的方法,但我正在努力学习。请帮助我并指出我的错误,并告诉我如果可能的话如何纠正它们。我知道可能有很多。我只是想在这一点上自学。非常感谢您的帮助。
答案 0 :(得分:0)
如果您只想下载页面生成的文件,这个问题可能有所帮助:
您的想法是,您需要将数据编码为base64(不是很难,现代浏览器支持btoa)并指示浏览器将其打开。如果您通过为文件提供mime-type来欺骗它,它不知道如何打开(例如application/octet-steam
),它将下载文件而不是显示它。
此解决方案的问题在于您无法命名文件。
如果要为文件命名,我将POST
数据发送到您的网络服务器,将其写入服务器上的文件,然后使用该文件的路径window.open
。这将允许您下载相关文件。
正在制定允许Javascript直接写入文件的草稿,但此文件将位于用户无法直接访问的沙盒位置。这仅适用于Web应用程序在客户端上存储大量数据。从你的问题来看,这可能不是你想要的。尝试上述解决方案之一。