关于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. iframe的简单使用方法

    1.父页面调用子页面的元素(a代表iframe的id或者class,b代表子页面) $('a').contents().find("b") 2.子页面调用父页面的元素(c代表父页面 ...

  2. Python之NMAP详解

    一.NMAP简介 NMap,也就是Network Mapper,最早是Linux下的网络扫描和嗅探工具包. nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端.确定哪些服务运行在哪些连 ...

  3. 《Python 网络爬虫权威指南》 分享 pdf下载

    链接:https://pan.baidu.com/s/1ZYEinjOwM_5dBIVftN42tg 提取码:1om6

  4. InnoDB表优化

    InnoDB表存储优化 适时的使用 OPTIMIZE TABLE 语句来重组表,压缩浪费的表空间.这是在其它优化技术不可用的情况下最直接的方法. OPTIMIZE TABLE 语句通过拷贝表数据并重建 ...

  5. Netty源码分析第1章(Netty启动流程)---->第4节: 注册多路复用

    Netty源码分析第一章:Netty启动流程   第四节:注册多路复用 回顾下以上的小节, 我们知道了channel的的创建和初始化过程, 那么channel是如何注册到selector中的呢?我们继 ...

  6. 为什么HashMap桶(链表)的长度超过8会转换成红黑树?

    百度了一下,感觉能说清楚的并不多,所以在此记录一下. 首先说一说转换为红黑树的必要性: 红黑树的插入.删除和遍历的最坏时间复杂度都是log(n), 因此,意外的情况或者恶意使用下导致hashCode( ...

  7. lsblk命令详解

    基础命令学习目录首页 lsblk 默认是树形方式显示: $lsblk NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTsda      8:0    0   2. ...

  8. Django_rest_framework_组件(authentication、permission、throttle)

    认证组件 说明 from rest_framework.authentication import BaseAuthentication class TestAuthentication(BaseAu ...

  9. css修改input自动提示的黄色背景

    css修改input自动提示的黄色背景 input:-webkit-autofill { background-color: #FAFFBD; background-image: none; -web ...

  10. Scrum立会报告+燃尽图(Final阶段第一次)

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2480 项目地址:https://coding.net/u/wuyy694 ...