UserData用法總結(jié) lanyu出品
更新時(shí)間:2010年07月01日 23:54:06 作者:
前一段做音樂(lè)和鏈接保存項(xiàng)目時(shí)用到了UserData,現(xiàn)在上線后效果不錯(cuò),就把UserData的一些用法總結(jié)出來(lái),大家一同分享。
應(yīng)用范圍
UserData是微軟為IE專門在系統(tǒng)中開(kāi)辟的一塊存儲(chǔ)空間,所以說(shuō)只支持Windows+IE的組合,實(shí)際測(cè)試在2000(IE5.5)、XP(IE6、IE7),Vista(IE7)下都是可以正常使用的。
在哪兒?
在XP下,一般位于C:\Documents and Settings\用戶名\UserData,有些時(shí)候會(huì)在C:\Documents and Settings\用戶名\Application Data\Microsoft\Internet Explorer\UserData。
在Vista下,位于C:\Users\用戶名\AppData\Roaming\Microsoft\Internet Explorer\UserData。
容量
網(wǎng)頁(yè)制作完成手冊(cè)中這樣說(shuō):
Security Zone
Document Limit (KB)
Domain Limit (KB)
Local Machine
128
1024
Intranet
512
10240
Trusted Sites
128
1024
Internet
128
1024
Restricted
64
640
線上使用時(shí),單個(gè)文件的大小限制是128KB,一個(gè)域名下總共可以保存1024KB的文件,文件個(gè)數(shù)應(yīng)該沒(méi)有限制。在受限站點(diǎn)里這兩個(gè)值分別是64KB和640KB,所以如果考慮到各種情況的話,單個(gè)文件最好能控制64KB以下。
如何使用?
用下面的JS語(yǔ)句就可以建立一個(gè)支持UserData的對(duì)象:
o = document.createElement('input');
o.type = "hidden";
o.addBehavior ("#default#userData");
//UserData.o.style.behavior = "url('#default#userData')" ;
//上面的語(yǔ)句也是一樣的作用
document.body.appendChild(o);
說(shuō)白了UserData就是樣式里的一個(gè)Behavior,所以這樣寫也是一樣的:
<input type=hidden class= storeuserData />
<style>
.storeuserData {behavior:url(#default#userData);}
</style>
UserData可以綁定在大多數(shù)的html標(biāo)簽上,具體為:
A, ACRONYM, ADDRESS, AREA, B, BIG, BLOCKQUOTE, BUTTON, CAPTION, CENTER, CITE, CODE, DD, DEL, DFN, DIR, DIV, DL, DT, EM, FONT, FORM, hn, HR, I, IMG, INPUT type=button, INPUT type=checkbox, INPUT type=file, INPUT type=hidden, INPUT type=image, INPUT type=password, INPUT type=radio, INPUT type=reset, INPUT type=submit, INPUT type=text, KBD, LABEL, LI, LISTING, MAP, MARQUEE, MENU, OBJECT, OL, OPTION, P, PLAINTEXT, PRE, Q, S, SAMP, SELECT, SMALL, SPAN, STRIKE, STRONG, SUB, SUP, TABLE, TEXTAREA, TT, U, UL, VAR, XM
UserData對(duì)象有以下的屬性和方法:
屬性
描述
expires
設(shè)置或讀取文件過(guò)期時(shí)間
XMLDocument
讀取文件的XML DOM
方法
描述
getAttribute
讀取指定屬性的值
load
打開(kāi)文件
removeAttribute
刪除指定的屬性
save
保存文件
setAttribute
為指定屬性賦值
UserData文件實(shí)際上就是一個(gè)XML文件,通過(guò)文件名->屬性的方式保存字符串,如以下一段代碼:
o.setAttribute("code", "hello world!");
o.save("baidu");
執(zhí)行后,UserData文件夾中會(huì)生成一個(gè)baidu[1].xml文件,其中的內(nèi)容是:
<ROOTSTUB code="hello,world!"/>
在一個(gè)文件中可以有多個(gè)屬性,也就是可以存儲(chǔ)多種不同的數(shù)據(jù)。
在音樂(lè)盒鏈接保存項(xiàng)目里,封裝了一個(gè)UserData類,這樣可以更方便地使用UserData,代碼如下:
/** @class 定義userdata的操作 */
var UserData = {
// 定義userdata對(duì)象
o : null,
// 設(shè)置文件過(guò)期時(shí)間
defExps : 365,
// 初始化userdate對(duì)象
init : function(){
if(!UserData.o){
try{
UserData.o = document.createElement('input');
UserData.o.type = "hidden";
//UserData.o.style.behavior = "url('#default#userData')" ;
UserData.o.addBehavior ("#default#userData");
document.body.appendChild(UserData.o);
}catch(e){
return false;
}
};
return true;
},
// 保存文件到userdata文件夾中 f-文件名,c-文件內(nèi)容,e-過(guò)期時(shí)間
save : function(f, c, e){
if(UserData.init()){
var o = UserData.o;
// 保持對(duì)象的一致
o.load(f);
// 將傳入的內(nèi)容當(dāng)作屬性存儲(chǔ)
if(c) o.setAttribute("code", c);
// 設(shè)置文件過(guò)期時(shí)間
var d = new Date(), e = (arguments.length == 3) ? e : UserData.defExps;
d.setDate(d.getDate()+e);
o.expires = d.toUTCString();
// 存儲(chǔ)為制定的文件名
o.save(f);
}
},
// 從uerdata文件夾中讀取指定文件,并以字符串形式返回。f-文件名
load : function(f){
if(UserData.init()){
var o = UserData.o;
// 讀取文件
o.load(f);
// 返回文件內(nèi)容
return o.getAttribute("code");
}
},
// 檢查userdata文件是否存在 f-文件名
exist : function(f){
return UserData.load(f) != null;
},
// 刪除userdata文件夾中的指定文件 f-文件名
remove : function(f){
UserData.save(f, false, -UserData.defExps);
}
// UserData函數(shù)定義結(jié)束
};
UserData是微軟為IE專門在系統(tǒng)中開(kāi)辟的一塊存儲(chǔ)空間,所以說(shuō)只支持Windows+IE的組合,實(shí)際測(cè)試在2000(IE5.5)、XP(IE6、IE7),Vista(IE7)下都是可以正常使用的。
在哪兒?
在XP下,一般位于C:\Documents and Settings\用戶名\UserData,有些時(shí)候會(huì)在C:\Documents and Settings\用戶名\Application Data\Microsoft\Internet Explorer\UserData。
在Vista下,位于C:\Users\用戶名\AppData\Roaming\Microsoft\Internet Explorer\UserData。
容量
網(wǎng)頁(yè)制作完成手冊(cè)中這樣說(shuō):
Security Zone
Document Limit (KB)
Domain Limit (KB)
Local Machine
128
1024
Intranet
512
10240
Trusted Sites
128
1024
Internet
128
1024
Restricted
64
640
線上使用時(shí),單個(gè)文件的大小限制是128KB,一個(gè)域名下總共可以保存1024KB的文件,文件個(gè)數(shù)應(yīng)該沒(méi)有限制。在受限站點(diǎn)里這兩個(gè)值分別是64KB和640KB,所以如果考慮到各種情況的話,單個(gè)文件最好能控制64KB以下。
如何使用?
用下面的JS語(yǔ)句就可以建立一個(gè)支持UserData的對(duì)象:
o = document.createElement('input');
o.type = "hidden";
o.addBehavior ("#default#userData");
//UserData.o.style.behavior = "url('#default#userData')" ;
//上面的語(yǔ)句也是一樣的作用
document.body.appendChild(o);
說(shuō)白了UserData就是樣式里的一個(gè)Behavior,所以這樣寫也是一樣的:
<input type=hidden class= storeuserData />
<style>
.storeuserData {behavior:url(#default#userData);}
</style>
UserData可以綁定在大多數(shù)的html標(biāo)簽上,具體為:
A, ACRONYM, ADDRESS, AREA, B, BIG, BLOCKQUOTE, BUTTON, CAPTION, CENTER, CITE, CODE, DD, DEL, DFN, DIR, DIV, DL, DT, EM, FONT, FORM, hn, HR, I, IMG, INPUT type=button, INPUT type=checkbox, INPUT type=file, INPUT type=hidden, INPUT type=image, INPUT type=password, INPUT type=radio, INPUT type=reset, INPUT type=submit, INPUT type=text, KBD, LABEL, LI, LISTING, MAP, MARQUEE, MENU, OBJECT, OL, OPTION, P, PLAINTEXT, PRE, Q, S, SAMP, SELECT, SMALL, SPAN, STRIKE, STRONG, SUB, SUP, TABLE, TEXTAREA, TT, U, UL, VAR, XM
UserData對(duì)象有以下的屬性和方法:
屬性
描述
expires
設(shè)置或讀取文件過(guò)期時(shí)間
XMLDocument
讀取文件的XML DOM
方法
描述
getAttribute
讀取指定屬性的值
load
打開(kāi)文件
removeAttribute
刪除指定的屬性
save
保存文件
setAttribute
為指定屬性賦值
UserData文件實(shí)際上就是一個(gè)XML文件,通過(guò)文件名->屬性的方式保存字符串,如以下一段代碼:
o.setAttribute("code", "hello world!");
o.save("baidu");
執(zhí)行后,UserData文件夾中會(huì)生成一個(gè)baidu[1].xml文件,其中的內(nèi)容是:
<ROOTSTUB code="hello,world!"/>
在一個(gè)文件中可以有多個(gè)屬性,也就是可以存儲(chǔ)多種不同的數(shù)據(jù)。
在音樂(lè)盒鏈接保存項(xiàng)目里,封裝了一個(gè)UserData類,這樣可以更方便地使用UserData,代碼如下:
復(fù)制代碼 代碼如下:
/** @class 定義userdata的操作 */
var UserData = {
// 定義userdata對(duì)象
o : null,
// 設(shè)置文件過(guò)期時(shí)間
defExps : 365,
// 初始化userdate對(duì)象
init : function(){
if(!UserData.o){
try{
UserData.o = document.createElement('input');
UserData.o.type = "hidden";
//UserData.o.style.behavior = "url('#default#userData')" ;
UserData.o.addBehavior ("#default#userData");
document.body.appendChild(UserData.o);
}catch(e){
return false;
}
};
return true;
},
// 保存文件到userdata文件夾中 f-文件名,c-文件內(nèi)容,e-過(guò)期時(shí)間
save : function(f, c, e){
if(UserData.init()){
var o = UserData.o;
// 保持對(duì)象的一致
o.load(f);
// 將傳入的內(nèi)容當(dāng)作屬性存儲(chǔ)
if(c) o.setAttribute("code", c);
// 設(shè)置文件過(guò)期時(shí)間
var d = new Date(), e = (arguments.length == 3) ? e : UserData.defExps;
d.setDate(d.getDate()+e);
o.expires = d.toUTCString();
// 存儲(chǔ)為制定的文件名
o.save(f);
}
},
// 從uerdata文件夾中讀取指定文件,并以字符串形式返回。f-文件名
load : function(f){
if(UserData.init()){
var o = UserData.o;
// 讀取文件
o.load(f);
// 返回文件內(nèi)容
return o.getAttribute("code");
}
},
// 檢查userdata文件是否存在 f-文件名
exist : function(f){
return UserData.load(f) != null;
},
// 刪除userdata文件夾中的指定文件 f-文件名
remove : function(f){
UserData.save(f, false, -UserData.defExps);
}
// UserData函數(shù)定義結(jié)束
};
相關(guān)文章
跨瀏覽器開(kāi)發(fā)經(jīng)驗(yàn)總結(jié)(四) 怎么寫入剪貼板
讓你的操作剪切板的操作支持多瀏覽器,一般IE,Firefox2010-05-05
讓ie6也支持websocket采用flash封裝實(shí)現(xiàn)
ie9都不支持websocket,何況ie6,往往這些不可思議的事情卻意想不到的發(fā)生了;websocket能開(kāi)發(fā)那么酷的功能,怎么能讓ie攔住我們的腳步,用falsh封裝吧,感興趣的你可不要錯(cuò)過(guò)了哈2013-02-02
js如何使用Pagination+PageHelper實(shí)現(xiàn)分頁(yè)
本文主要介紹了js如何使用Pagination+PageHelper實(shí)現(xiàn)分頁(yè),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
微信小程序?qū)崿F(xiàn)長(zhǎng)按拖拽排序功能
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)長(zhǎng)按拖拽排序功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05
Javascript的嚴(yán)格模式strict mode詳細(xì)介紹
這篇文章主要介紹了Javascript的嚴(yán)格模式strict mode詳細(xì)介紹,重點(diǎn)介紹了嚴(yán)格模式的使用方法及使用strict mode后對(duì)javascript語(yǔ)法上帶來(lái)的改變,需要的朋友可以參考下2014-06-06
Parcel.js + Vue 2.x 極速零配置打包體驗(yàn)教程
這篇文章主要介紹了Parcel.js + Vue 2.x 極速零配置打包體驗(yàn) 的相關(guān)資料,需要的朋友可以參考下2017-12-12
JS 截取字符串substr 和 substring方法的區(qū)別
JS 截取字符串substr 和 substring方法的區(qū)別,需要的朋友可以參考下,根據(jù)需要自行選擇。2009-10-10
關(guān)于安卓手機(jī)微信瀏覽器中使用XMLHttpRequest 2上傳圖片顯示字節(jié)數(shù)為0的解決辦法
這篇文章主要介紹了關(guān)于安卓手機(jī)微信瀏覽器中使用XMLHttpRequest 2上傳圖片顯示字節(jié)數(shù)為0的解決辦法 的相關(guān)資料,需要的朋友可以參考下2016-05-05

