多个jsp页面共享一个js对象的超级方法

 今天,在项目中遇到一个问题,两个js页面要共享一个就js对象。js全局变量和静态变量都不行,其他苦逼的小农们就不要去强求了。而LZ又不想用cookie来存放,一是不安全,二个人喜好。最后发现一种超级方法来解决这个困扰,那就是用window.top['_CACHE']来存放这个变量,即可实现,不同Jsp页面直接的对象共享。

var share = { 

/**
* 跨框架数据共享接口
* @param {String} 存储的数据名
* @param {Any} 将要存储的任意数据(无此项则返回被查询的数据)
*/
data: function (name, value) {
var top = window.top,
cache = top['_CACHE'] || {};
top['_CACHE'] = cache; 

return value !== undefined ? cache[name] = value : cache[name];
}, 

/**
* 数据共享删除接口
* @param {String} 删除的数据名
*/
removeData: function (name) {
var cache = window.top['_CACHE'];
if (cache && cache[name]) delete cache[name];
} 

};

下面贴上LZ的代码:

LZ的一个jsp页面为A.jsp,在A.jsp中点击一个按钮打开另一个B.jsp页面。LZ的思路如下:

在A.jsp打开B.jsp的事件中,写入如下代码:

window.top['_CACHE'] = chatFrdList;
window.top['_CACHE'][frdUserId] = frdUserId;

其中,chatFrdList定义为var chatFrdList = new Object();

frdUserId为一个用户的id。

那么,在B.jsp的一个事件中,就可以执行下面的操作:

<pre name="code" class="javascript" style="margin-top:0px; margin-bottom:
0px; padding:0px; font-family:'courier new'
,courier,monospace">var e = document.getElementsByName("chatWindow");
</pre><pre name="code" class="javascript" style="margin-top:0px; margi
n-bottom:0px; padding:0px; font-family:'courier new',courier,monospace">var keyId = e[0].id;
delete window.top['_CACHE'][keyId];// 关闭与该好友的聊天窗口时,将其从聊天表中移除</pre>

然后,LZ就可以在A.jsp的其他事件中操作window.top['_CACHE']了,这样便能实现多个JSP页面直接的js对象共享了。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索页面
, cache
, window
, top
, 方法jsp js页面
, jsp js
, 一个
, 超级变量
, 超级全局变量
, 共享js对象
, js移除事件
js数据共享
jsp页面解析json对象、jsp页面传递对象、jsp页面 无法new 对象、jsp页面间传递js对象、jsp页面传对象,以便于您获取更多的相关知识。

时间: 2024-12-31 00:52:56

多个jsp页面共享一个js对象的超级方法的相关文章

多个jsp页面共享一个js对象的超级方法_JSP编程

今天,在项目中遇到一个问题,两个js页面要共享一个就js对象.js全局变量和静态变量都不行,其他苦逼的小农们就不要去强求了.而LZ又不想用cookie来存放,一是不安全,二个人喜好.最后发现一种超级方法来解决这个困扰,那就是用window.top['_CACHE']来存放这个变量,即可实现,不同Jsp页面直接的对象共享. var share = { /** * 跨框架数据共享接口 * @param {String} 存储的数据名 * @param {Any} 将要存储的任意数据(无此项则返回被查

window.top[_CACHE]实现多个jsp页面共享一个js对象_JSP编程

今天,在项目中遇到一个问题,两个js页面要共享一个就js对象.js全局变量和静态变量都不行,其他苦逼的小农们就不要去强求了.而LZ又不想用cookie来存放,一是不安全,二个人喜好.最后发现一种超级方法来解决这个困扰,那就是用window.top['_CACHE']来存放这个变量,即可实现,不同Jsp页面直接的对象共享. var share = { /** * 跨框架数据共享接口 * @param {String} 存储的数据名 * @param {Any} 将要存储的任意数据(无此项则返回被查

JSP页面中有一个JSP脚本,我想把JS中的一个var变量放到session里该怎么做?

问题描述 JSP页面中有一个JSP脚本,我想把JS中的一个var变量放到session里该怎么做? 如题: var s="sdd"; <% session.setAttribute("msg",s);%> 这个代码如何把s放到这个session中?? 解决方案 服务器端无法直接使用客户端内容,用提交到服务器才行,用表单或者ajax来提交s的值 http://www.w3school.com.cn/jquery/ajax_ajax.asp 解决方案二: h

jsp页面九大内置对象

资源转载自网上,不可用于商用,学习可以.内置对象又叫隐式对象/隐含对象是由WEB容器加载的一组类的实例,不需要预先声明就可以在脚本代码和表达式中随意使用的对象. 这九大隐式对象可以按照期作用分类为: 输入输出:request,response,out 作用域之间通信:session,application,pageContext,(request) Servlet对象:page,config 错误对象:Execpiton   4+2+3 四大作用域(1)-->Application,也就是ser

如何控制哪个JSP页面打开一个新的连接?当两个JSP的target属性一致的情况下。

问题描述 如何控制哪个JSP页面打开一个新的连接?当两个JSP的target属性一致的情况下. 两个JSP页面,B页面是通过A页面jsp:forwar出来的,他们两个的target属性都相同.现在有个问题,我在B页面中有很多table,大多table中有双击域,来打开一个新的JSP页面,该页面是用来展示信息的. 但是问题来了,我这个B页面一点击双击域这个信息就自动在A页面中打开了~ 因为我打开的方式是用document.framename.src="XXXX.jsp"; 我试过很多方法

DOM对象本身也是一个js对象,所以严格来说,并不是操作这个对象慢,而是说操作了这个对象后,会触发一些浏览器行为(转)

一直都听说DOM很慢,要尽量少的去操作DOM,于是就想进一步去探究下为什么大家都会这样说,在网上学习了一些资料,这边整理出来. 首先,DOM对象本身也是一个js对象,所以严格来说,并不是操作这个对象慢,而是说操作了这个对象后,会触发一些浏览器行为,比如布局(layout)和绘制(paint).下面主要先介绍下这些浏览器行为,阐述一个页面是怎么最终被呈现出来的,另外还会从代码的角度,来说明一些不好的实践以及一些优化方案. 浏览器是如何呈现一张页面的 一个浏览器有许多模块,其中负责呈现页面的是渲染引

jsp页面开启一个新的线程访问session域

问题描述 jsp页面开启一个新的线程访问session域 jsp页面开启一个新的线程,新线程要执行的动作得用到session,求大神支招,能做到么? 解决方案 HttpSession session = request.getSession(); 解决方案二: 当然可以啊,就像在servlet中开启一个线程是一样的呀. 解决方案三: 可以,session就是会话的意思,你可以在页面取到他啊啊 解决方案四: 可以,只要将session对象传入即可.

spring mvc-spring MVC jsp页面获取参数 以对象的方式

问题描述 spring MVC jsp页面获取参数 以对象的方式 jsp里面的body部分 <h1>用户信息添加2</h1> <form action="user/add3.do" method="post"> 编号:<input type="text" name="userId"/><br/> 姓名:<input type="text" n

新手 帮忙 网页-用一个JSP页面编写一个猜数字游戏

问题描述 用一个JSP页面编写一个猜数字游戏 系统内部生成一个0-100之间的随机数,提供一个表单让用户来猜这个数字是多少,若猜大了,出现"大了"的提示,若猜小了,出现"小了"的提示,直到用户猜到正确的数字时,提示"猜对了!",并统计用户猜了几次才猜对. 我的代码: **<%@ page language="java" import="java.util.*" pageEncoding="U