|
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