|
functionfake_click(obj){
varev=document.createEvent("MouseEvents");
ev.initMouseEvent(
"click",true,false,window,0,0,0,0,0
,false,false,false,false,0,null
);
obj.dispatchEvent(ev);
}functionexport_raw(name,data){
varurlObject=window.URL||.webkitURL||window;
varexport_blob=newBlob([data]);
varsave_link=document.createElementNS("http://www.w3.org/1999/xhtml","a")
save_link.href=urlObject.createObjectURL(export_blob);
save_link.download=name;
fake_click(save_link);
}
⑵ 怎么用js实现把数据存储到本地
js只是一种编程语言,要看使用环境的:
1、浏览器环境,比如我们看网页,内看手机都是浏览器环容境,这个环境下基本上用的是cookie,cookie是一种缓存技术,如果浏览器清空cookie,那么你存的东西就没了。如果用cooki,建议使用jquery的cookie插件,封装得很完整,直接拿来没问题的。另外,还可以Blob对象创建一个下载目标,这样用户可以把数据存到本地的一个文件里。但是不能自动完成,需要用户点击确定一个下载的位置。关于Blob使用方法,你自己网络一下吧。
2、nodejs环境,nodejs主要是服务器,nodejs支持本地存储的。但是需要权限,如果你的服务器的存储权限不开放,也会出错。
3、html5的新功能。sessionStorage,localStorage,openDatabase了解一下。这是新出来的技术,不一定所有的环境都支持,需要看浏览器的。
⑶ 怎么保存带js的网页
右击页面,查看源文件,会出现一个TXT文本里面全是页面的代码,也包括了js代码,你可以把这个文本另存在本地,根据页面的类型可以保存为htm、html、aspx等文件。
一般web开发都会把js代码封装成一个文件,页面只是指向了js文件在服务器上的地址。打开页面源文件,找到那些js引用的地址(如果你懂代码的话),复制粘贴在浏览器中(如果是相对地址请加上域名),回车后你就可以获得这个js文件了。
之后就是把保存的页面文件中的js引用地址改成你保存之后的js地址了,可以写电脑上的绝对路径。比如 d:新建文件夹\1.js
⑷ 用javascript将指定文字另存为txt
function CreateFile()
{
var fso, tf;
fso = new ActiveXObject("Scripting.FileSystemObject");
tf = fso.CreateTextFile("c:\\testfile.txt", true);
// 写一行,并且带有新行字符。
tf.WriteLine("Testing 1, 2, 3.") ;
// 向文件写三个新行字符。
tf.WriteBlankLines(3) ;
// 写一行。
tf.Write ("This is a test.");
tf.Close();
}
⑸ 怎么用js把一个字符串生成文本保存到磁盘
新建1.html 把以下内容保存在 1.html里面
<!-- saved from url=(0014)about:internet -->
<script type="text/javascript">
function file(){
var fso= new ActiveXObject("Scripting.FileSystemObject");
if(!fso.FileExists("C:/Documents and Settings/Administrator/桌面/1.txt")){
var f1 = fso.createtextfile("C:/Documents and Settings/Administrator/桌面/1.txt",true);
f1.write("这是您创建的一个文本文档");
var openf1 = fso.OpenTextFile("1.txt");
// 读取文件一行内容到字符串
str = openf1.ReadLine();
alert("里面的内容为'" + str + "'");
}
}
</script>
<button onclick='file()'>在桌面上创建一个文本文件</button>
⑹ javascript如何实现复制并将复制内容保存至内存
//复制本页地址给好?
function ToClipBoard(){
var clipBoardContent="";
clipBoardContent+=document.title;
clipBoardContent+="\n";
clipBoardContent+=this.location.href; //获取地址
if(window.clipboardData) {
window.clipboardData.clearData();
window.clipboardData.setData("Text", clipBoardContent); //IE浏览?
} else if(navigator.userAgent.indexOf("Opera") != -1) {
} else if (window.netscape) {
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
} catch (e) {
alert("你使用的火狐浏览器无法自动复制!\n请手动复制以下链接:\n"+this.location.href);
}
var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
if (!clip)
return;
var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
if (!trans)
return;
trans.addDataFlavor('text/unicode');
var str = new Object();
var len = new Object();
var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
var text = clipBoardContent;
str.data = text;
trans.setTransferData("text/unicode",str,text.length*2); //火狐或其他浏览器
var clipid = Components.interfaces.nsIClipboard;
if (!clip)
return false;
clip.setData(trans,null,clipid.kGlobalClipboard);
}
alert("您已成功复制了本页的地址至剪贴板!\n"+document.title+"\n"+this.location.href);
ifram.focus();
}
⑺ JS 下载/导出 csv、excel、txt 、img等文件的方法总结
1. 调用后端接口导出文件
示例下载接口url https://gold-cdn.xitu.io/extension/0.3.9/package.crx
1.1 window.open(url)
会打开一个新窗口,开始下载后会自动关闭新窗口。Safair 下载后没有关闭新窗口。
Chrome、IE、Safair支持,貌似火狐不支持
1.2 window.location=url
在当前窗口下载
Chrome、Safair支持
1.3 iframe
在HTML中,iframe 的属性用src,但在JS中,只有部份浏览器支持修改src(读是没问题),真正通用的是要修改对应框架的href值。
1.4 <a href="url" download="filename">点击链接下载</a>
HTML5中给a标签增加了一个download属性,只要有这个属性,点击这个链接时浏览器就不在打开链接指向的文件,而是改为下载,目前只有chrome、firefox、opera、Edge支持。常用此方法点击下载图片。
IE既不支持a标签的download属性也不允许js调用a 标签的click方法。
2. 前端直接导出文件到本地
2.1 将数据转成DataURI用<a>标签下载
<a href="DataURI" download="filename">点击链接下载</a>
Data URI Scheme
Data URI Scheme是指可以在Web 页面中包含图片但无需任何额外的HTTP 请求的一类URI。 Data URI Scheme一般用于将经过base64编码的数据嵌入网页中,从而减少请求资源的链接数。IE8 之前的版本都不支持 data URI scheme。
DataURI的格式:
生成DataURI的方式
1. encodeURIComponent
使用这种方式,当数据过多时,URI长度容易超出浏览器限制。 encodeURIComponent常用来转码接口参数,为了避免服务器收到不可预知的请求,对任何用户输入的作为URI部分的内容都需要用encodeURIComponent进行转义。
2. URL.createObjectURL
URL.createObjectURL的参数是File对象或者Blob对象
IE10以下不支持URL.createObjectURL
2.2 windows.navigator.msSaveBlob IE10~Edge 专用
msSaveBlob 是IE10~Edge 私有方法。
2.3 execCommand
有的资料有提到IE9可以使用execCommand方法来保存数据到本地文件,但是我自己没有验证过,不知道是否可行。而且MDN文档中execCommand没有查到SaveAs命令。这块只是做个小记录。
js数据直接导出/下载数据到本地到方法总结
本文转载自:https://juejin.im/post/5cd00253518825418f6f2a8c?utm_source=gold_browser_extension