一些常用的js讀寫檔案,排序等

2021-08-19 15:02:46 字數 2179 閱讀 1552

最近寫js發現很多規則跟自己想的不一樣,畢竟剛上手不就,所以繞了很多彎彎,這裡總結記錄下

1,由於file標籤上傳時:onchange方法在再次上傳相同檔案不在被觸發 

想要被觸發的方法:

$("#file").on("change", function (evt) );
2,讀取file上傳的檔案資訊

$("#file").on("change", function ()
3,生成本地檔案

生成並匯出txt檔案

code

為了相容ie請把上述標籤寫上,由於display:none所以不影響網頁內容

/***filename 檔名

*filedata 需要寫入檔案的內容

*/ function generatefile(filename,filedata) else

}

4,根據map(key,value)的value重大到小遞迴排序map

/**

*map 是需要排序的物件

*newmap 排序後的map物件

*/ var newmap = {};

function ordermapbyvalue(map) ")

for (key1 in map)

}newmap[tempkey] =tempvalue;//注意如果key是數字無論是你是什麼時候插入 1還是"1" 系統會自動根據數字的大小重新排序,我這裡的key不是純數字,所以沒問題

delete map[tempkey];

break;//break是為了只for一次,畢竟js我沒找到直接獲取map第乙個元素對的方法,只能這樣來獲取map裡的第一組資料

}ordermapbyvalue(map);

}

5 獲取當前頁面的滾動條縱座標位置 

用:document.documentelement.scrolltop;

而不是:

document.body.scrolltop;

documentelement 對應的是 html 標籤,而 body 對應的是 body 標籤。

documentelement 不常用。這容易在開發中犯錯,網上很多例子,用的是 document.body.scrolltop ,實際上是取不到正確值的。

window.onscroll=function () 

}

下面** 

client***屬性(clientwidth、clientheight):

表示元素可以看到內容的可見區域部分,一般是最後乙個物件條以下到狀況欄以上的這個區域,與頁面內容無關。且它會直接返回屬性的數值大小,可直接進行計算。分開說的話也可以這樣理解:若元素大小小於父元素,大小包括padding、content部分,不包括border;若元素大小大於父元素,則表示可以看到的部分的高或寬。

offset***屬性(offsetwidth、offsetheight、offsettop、offsetleft):

對於offsetwidth和offsetheight,都表示當前物件的寬度/高度。offsetwidth與style.widtht的區別是:若物件的寬度設定值為百分百寬度,無論頁面變大或變小,style.width都返回此百分比;而offsetwidth則返回頁面中物件的寬度值而不是百分比。

對於offsettop和offsetleft,都表示當前元素物件相對於其定位元素的垂直/水平偏移量。

scroll***屬性(scrolltop、scrollleft、scrollheight、scrollwidth): 

scroll是滾動的意思,也就是scrollwidth、scrollheight屬性代表元素物件真實的寬高,即使有一部分看不到;scrolltop、scrollleft代表元素物件最頂端/最左端到物件到當前視窗顯示的侷限內的距頂部/左邊距的間隔,也是元素垂直/水平滾動了的距離,或者是元素捲簾卷走的視覺中看不到的部分。

有兩個關係式是(當所有元素的margin均初始化設為0時):

scrollheight - scrolltop = clientheight:當這兩個條件成立時,也就代表垂直滾動條走到底了

scrollwidth - scrollleft = clientwidth:當這兩個條件成立時,也就代表水平滾動條走到底了

檔案讀寫的一些坑

r 開啟並唯讀檔案,該檔案必須存在。r 開啟並且可讀可寫檔案,該檔案必須存在。w 開啟並只寫檔案,若檔案存在則檔案長度清為0,即該檔案內容會消失。若檔案不存在則建立該檔案。w 開啟可讀寫檔案,若檔案存在則檔案長度清為零,即該檔案內容會消失。若檔案不存在則建立該檔案。a 以附加的方式開啟只寫檔案。若檔...

一些常用js方法

使用命名空間 var global global.namespace function str else 陣列相關 判斷元素是否存在 第一種寫法 為系統陣列物件新增原型擴充套件方法 array.prototype.inarray function value return false 第二種 自定義...

一些常用的JS方法

獲取位址的引數 function search param else input type file 不可編輯 今天在做專案的時候,遇到上傳文字框的問題,在firefox中,該控制項產生的文字框是預設不可編輯的,但是在ie下,該文字框可編輯,根據使用者需要,此文字框應為不可編輯。但是直接將其設定為 ...