关于userData的介绍,请参见
http://hi.baidu.com/kaisep/blog/item/1da9a3312d2da5a15edf0e87.html
http://hi.baidu.com/kaisep/blog/item/bea532f58eb0082cbc310980.html
我这里直接说我的用法

我封装好的userData.js
document.write('<form id="oForm"><input style="DISPLAY: none; HEIGHT: 50px; WIDTH: 50px" ID="oInput"></form><IE:clientCaps id="ExculpateRate"></IE:clientCaps>')
var userData = oForm.oInput
//保存对象到XML文件中
// 如把select下拉列表的值0,以sSelectIndex为名称,保存到filename(将来在userdata中以filename[1].xml存在)中
//SaveUserData("sSelectIndex", filename, "0");
function SaveUserData(Main, Sub, strContent) {
try {
   userData.setAttribute(Main + userData.value, strContent)
   userData.save(Sub + userData.value)
} catch (e) {
}
}
//加载获取文件中的对象值
//如获取上面保存的值
//var str_bm = LoadUserData("sSelectIndex", filename)
function LoadUserData(Main, Sub) {
try{
userData.load(Sub + userData.value)
var sTmp = userData.getAttribute(Main + userData.value)
if (sTmp == null)
   sTmp = ""
return sTmp
}catch(e){
   return ""
}
}

使用方法:
先写入样式
<STYLE>    
      .userData {behavior:url(#default#userdata);}    
</STYLE> 
再引入userData.js
<script src="../etc/js/userData.js"></script>

实例HTML页面
<html>
<head>
<title>无标题文档</title>
<STYLE>    
      .userData {behavior:url(#default#userdata);}    
</STYLE> 
</head>

<script src="userData.js"></script>

<body>

<p align="center">wupin_idNotEvent[1].xml会保存在C:\Documents and Settings\Administrator\UserData下面的随机文件夹中,</p>

<select id="wupin_idNotEvent" name="wupin_id" >
<option value="0" selected>请选择您要使用的设备类型</option>
<option value="001">虹光扫描仪FB2600B</option>
<option value="002">虹光扫描仪AW800</option>
<option value="003">虹光扫描仪AW1000</option>
<option value="004">虹光扫描仪AV210C2</option>
</select>

<script>
//在用户点中除(请选择项 外的option时,保存用户选中的值)
var obj=document.getElementById("wupin_idNotEvent");
var filename="wupin_idNotEvent";//wupin_idNotEvent[1].xml
var defaultIndex="0";
var defauleValue="请选择您要使用的设备类型";
//添加onchange事件
obj.attachEvent('onchange',saveSelectedIndex);

//保存用户选中的值(第一行除外)
function saveSelectedIndex(){
if(obj.options[obj.selectedIndex].value!="0"){
   //obj.setAttribute("sSelectIndex",obj.selectedIndex);
   //obj.setAttribute("sSelectValue",obj.options[obj.selectedIndex].value);
   SaveUserData("sSelectIndex", filename, obj.selectedIndex);
   SaveUserData("sSelectValue", filename, obj.options[obj.selectedIndex].value);
   alert("write ok");
}
}

//从userdata中 默认加载用户最后一次选择的值
window.attachEvent('onload',loadSelectedIndex)
function loadSelectedIndex(){
var str = LoadUserData("sSelectIndex", filename)
var str2 = LoadUserData("sSelectValue", filename)
//加载时如果为空就先保存
if (str == "") {
   SaveUserData("sSelectIndex", filename, "0");
   SaveUserData("sSelectValue", filename, "请选择您要使用的设备类型");
}
//取userdata中的值
var selectindex=LoadUserData("sSelectIndex", filename); 
var selectvalue= LoadUserData("sSelectValue", filename);
//var fpdm = LoadUserData("sSelectValue", filename);
// 循环,重新创建select,判断新的select是否有XML保存的 项。
var s = document.getElementById("wupin_idNotEvent"); //获取select标记
var ops= s.options; //获取对select标记options的引用
//有了才加载
for(var i=0; i<s.length; i++){
     if(selectvalue==ops[i].value && ops[i].value!="请选择您要使用的设备类型"){
       alert("加载上一次 的为选中状态");
       obj.options[selectindex].selected=true;
     }
   } 
}

</script>
</body>

</html>

我项目中使用userData的实例 UserData.js的更多相关文章

  1. 非web项目中使用XDT的实例(续)

    简化 上个实例中,我们是引用了target文件来遍历项目中的xdt项. 当项目比较小,我们又只需要针对固定的config文件进行更替时,可以使用更简化的方法 不进行项目配置文件中的插入<Impo ...

  2. 如何在我们项目中利用开源的图表(js chart)

            最近觉得应该把自己在技术上的一些心得记录在博客里面跟大家分享,一起讨论,一起成长!       这篇随笔主要为介绍chart在项目中的运用,因为在我们看到一些开源的chart时候,是使 ...

  3. vue项目中 如何让外部引入的js模块 的this值 指向vue实例

    当前是vue项目,想在tool.js(工具模块)中封装一个跳转页面的方法, goToUrl(name,query){ if(query){ if(query.addressCode){ vueObje ...

  4. 在java项目中使用log4j的实例

    测试log4j的项目结构 Log4j.properties的路径为    src/config/log4j Log4j.properties文件的内容 下面定义日志输出级别是 INFO,并且配置了2个 ...

  5. java项目中rmi远程调用实例

    1.创建一个学生实体类Student.java: package com.RMIdemo.entity; @SuppressWarnings("serial") public cl ...

  6. 解决wpf项目中无法添加OpenFileDialog 实例的问题

    直接添加引用:using Microsoft.Win32; 或者放置鼠标于OpenFileDialog OpenFileDialog ofd = new OpenFileDialog(); 操作点击

  7. vue项目中引入animate.css和wow.js

    本文转自:https://blog.csdn.net/liyunkun888/article/details/85003152 https://www.zhuimengzhu.com/content/ ...

  8. SpringBoot项目中使用Bootstrap 的CSS、JS资源

    首先 需要在 application.properties 文件中添加这句 spring.mvc.static-path-pattern=/** 不然是使用不了的 还有一种办法就是 使用bootstr ...

  9. Vue项目中导入excel文件读取成js数组

    1. 安装组件 cnpm install xlsx --save 2. 代码 <template> <span> <input class="input-fil ...

随机推荐

  1. Form,tagName和nodeName的区别

    首先介绍DOM里常见的三种节点类型(总共有12种,如docment):元素节点,属性节点以及文本节点,例如<h2 class="title">head</h2&g ...

  2. AWK高端功能-数组

    第1章 awk命令基础 1.1 awk命令执行过程 1.如果BEGIN 区块存在,awk执行它指定的动作. 2.awk从输入文件中读取一行,称为一条输入记录.如果输入文件省略,将从标准输入读取 3.a ...

  3. How to use the windows active directory to authenticate user via logon form 如何自定义权限系统,使用 active directory验证用户登录

    https://www.devexpress.com/Support/Center/Question/Details/Q345615/how-to-use-the-windows-active-dir ...

  4. 【转】阿里云Linux系统被攻击的处理过程

    4-22日 19:48分,在等女儿跳舞下课的时候,在“多看”进入大刘等人的<毁灭之城:地球碎块>,读到了“诅咒 3.0”病毒出现的时候,阿里云发来短信“尊敬的用户,您的云服务器x.x.x. ...

  5. 【Python学习笔记之三】lambda表达式用法小结

    除了def语句之外,Python还提供了一种生成函数对象的表达式形式.由于它与LISP语言中的一个工具很相似,所以称为lambda.就像def一样,这个表达式创建了一个之后能够调用的函数,但是它返回了 ...

  6. 稳重商务风格教师求职简历免费word模板

    30款稳重商务风格教师求职简历免费word模板,也可用于其他专业和职业,个人免费简历模板,个人简历表免费,个人简历表格. 声明:该简历模板仅用于个人欣赏使用,请勿用于商业用途,谢谢. 下载地址:百度网 ...

  7. Qt-网易云音乐界面实现-8 主导航的实现-QtabWidget

    哎呀,堕落了,快有小两周没哟更新了,是在是没有动力了,浏览量连三位数都没有,是在是没有写下去的信心. 还有就是这个网易云音乐的代码量绝对是不可小视的,完全低估了这个软件的能量.昨天仔细想了一下,写不下 ...

  8. 优化JDBC开发

    一.元数据 元数据:数据库.表.列的定义信息 1.DataBaseMetaData对象 getURL():返回一个String类对象,代表数据库的URL. getUserName():返回连接当前数据 ...

  9. appium移动自动化测试---api键盘操作

    模拟键盘输入也是非常重要的操作.这一小节来介绍那些关于键盘的操作. 1.sendKeys()方法 方法: sendKeys() 用法: driver.findElements(By.name(&quo ...

  10. LINUX系统下跑分测试脚本:unixbench.sh

    linux 系统跑分测试脚本:     一.下载脚本:        wget http://teddysun.com/wp-content/uploads/unixbench.sh 二.更改权限:  ...