关于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. SQL Server 查询请求

    当SQL Server 引擎接收到用户发出的查询请求时,SQL Server执行优化器将查询请求(Request)和Task绑定,并为Task分配一个Workder,SQL Server申请操作系统的 ...

  2. MySQLConnector/ODBC 安装时遇到的小问题

    今天在新做的 Win2008R2 上想使用 SqlDbx 管理 MySQL,提示需要安装 MySQLConnector/ODBC,这没什么,以前装过的,按要求下载安装一个就是了. 结果在安装 MySQ ...

  3. 微信小程序充值及充值回调后的处理

    微信小程序的充值流程与 H5 或 公众号大致差不多,这里简单说一下前端在充值时候的一些操作流程. 用户在小程序中发起充值请求时,一般会先请求自己的服务器,将充值的参数发送给后端,然后后端会去请求微信充 ...

  4. python快速入门——进入数据挖掘你该有的基础知识

    这篇文章是用来总结python中重要的语法,通过这些了解你可以快速了解一段python代码的含义 Python 的基础语法来带你快速入门 Python 语言.如果你想对 Python 有全面的了解请关 ...

  5. NO--16 vue之父子组件传值

    先创建项目并运行 vue init webpack-simple templatecd templatenpm inpm run dev 一.子组件访问父组件的数据 方式一 :子组件直接访问父组件的数 ...

  6. 如何用Python为你的邮箱加油?还有这种操作!

    我来介绍一下我是如何使用 Python 来节省成本的. 我最近在开一辆烧 93 号汽油的车子.根据汽车制造商的说法,它只需要加 91 号汽油就可以了.然而,在美国只能买到 87 号.89 号.93 号 ...

  7. CentOS7下,防火墙设置

    CentOS中防火墙程序主要是firewall和iptables两种. CentOS7中firewall服务已经默认安装好了,而iptables服务需要自己用yum install  iptabes- ...

  8. Flink架构分析之RPC详解

    主要抽象 Flink RPC 框架主要抽象了RpcService,RpcEndpoint,RpcGateway,RpcServer这几个接口,具体实现可以采用多种方式,比如:akka,netty Rp ...

  9. tr命令详解

    基础命令学习目录 原文链接:https://www.cnblogs.com/ginvip/p/6354440.html 什么是tr命令?tr,translate的简写,translate的翻译: [t ...

  10. jobs命令详解

    基础命令学习目录首页 在用管理员执行一个命令后,用Ctrl+Z把命令转移到了后台.导致无法退出root的. 输入命令:exit终端显示:There are stopped jobs. 解决方法:方法一 ...