Javascript 在“新建”选项卡中将生成的文本作为savable.txt文件打开

Javascript 在“新建”选项卡中将生成的文本作为savable.txt文件打开,javascript,browser,save,text-files,Javascript,Browser,Save,Text Files,我想生成以下字符串的文本文档: const rawText = `Today is ${new Date()}`; openInNewTabWithDefaultFilename(rawText, "TodaysDate.txt"); 我看过一些关于如何打开新选项卡和设置内容的内容: var newTab = window.open(); newTab.document.title = "Todays Date"; newTab.document.bo

我想生成以下字符串的文本文档:

const rawText = `Today is ${new Date()}`;

openInNewTabWithDefaultFilename(rawText, "TodaysDate.txt");
我看过一些关于如何打开新选项卡和设置内容的内容:

var newTab = window.open();
newTab.document.title = "Todays Date";
newTab.document.body.innerHTML = `Today is ${new Date()}`;
但这将打开一个带有文本的选项卡,而不是一个文本文件。我希望用户能够简单地将页面保存为文本文件


这可能吗?

经过一系列研究,这似乎是最好的

无法在可保存的新选项卡中打开文本,更不用说具有默认文件名

生成可查看并保存的文本文件的唯一方法是使用数据URL,但谷歌错误地将其全部视为一种安全威胁(某些是,text/plain绝对不是)

我发现最好的解决方法是创建两个按钮/链接,一个用于下载文件,另一个用于查看文件

如果要预生成文件,可以执行此操作

下载
看法
const blob=new blob([`Today是${new Date()}`],{type:“text/plain”});
const url=url.createObjectURL(blob);
const view=document.getElementById(“ViewTextFile”);
const download=document.getElementById(“DownloadTextFile”);
view.href=download.href=url;

如果要在单击时生成(由于缺少StackOverflow iframe权限,示例将无法运行)

constbyid=(id)=>document.getElementById(id);
byId(“ViewTextFile”).addEventListener(“单击”,()=>{
serveTextFile(`Today是${new Date()}`);
})
byId(“DownloadTextFile”).addEventListener(“单击”,()=>{
serveTextFile(`Today是${new Date()}`,TodaysDate.txt”);
});
函数serveTextFile(文本,下载方式){
const blob=新blob([text],{type:“text/plain”});
const url=url.createObjectURL(blob);
const domNode=document.createElement('a');
downloadAs&(domNode.download=downloadAs);
!downloadAs&(domNode.target=“_blank”);
domNode.href=url;
domNode.style.display='none';
document.body.appendChild(domNode);
domNode.click();
document.body.removeChild(domNode);
}
下载
查看