jsp对弹出jsp传值 和刷新网页后js仍然没有刷新的解决方法
jsp對彈出jsp傳值
和刷新網頁后js仍然沒有刷新的解決方法
現在
從A.jsp彈出B.jsp,B.jsp包含B.js;
要從B.js訪問到A.jsp中的變量的值;
彈出JSP的代碼為:
$('#more').html('<iframe id="iframe1" scrolling="auto" frameborder="0" src="<%=request.getContextPath()%>/RLL/sv/infob.jsp" style="width:100%;height:100%;"></iframe>');
$('#more').window('open');
1 url后傳值
infob.jsp?rid="+infodata.SID
從包含的js里訪問,提示錯誤;
Uncaught ReferenceError: rid is not defined
2 使用session
A.jsp
var rmid=infodata.SID;
<% ? ? ??
? ? session.setAttribute("rid","XXID"); ? ? ??
%>
B.jsp:
<input type="hidden" id="rid" value="<%=session.getAttribute("rid")%>"/>
B.js:
alert("接收xxid:"+$('#rid').val());
可以獲取到字符串"xxID";
但是,rmid怎么能傳到 <% %>里;
var rmid=infodata.SID;
<% ? ? ??
? ? session.setAttribute("rid",rmid); ? ? ??
%>
它報一個錯,rmid cannot be resolved to a variable
3 使用js操作cookie
A.jsp:
document.cookie="rmid="+infodata.SID;
B.js:?? ??? ?
var rid=document.cookie.split(";")[0].split("=")[1];
alert("接收xxid:"+rid);
或者
var cokes=document.cookie;
cookie可能針對單個頁面;訪問不到A.jsp中設置的cookie;
4 使用公共js
定義一個公共js文件common.js,在A.jsp和B.jsp中都包含;
common.js:
var ridddd=null;
function setrid(rmid) {
?? ?ridddd=rmid;
};
function getrid() {
?? ?return ridddd;
};
在A.jsp中setrid(infodata.SID),
在B.js中getrid(),獲取不到;
5 使用window.x形式變量
A.jsp:
window.ridddd=infodata.SID;
B.js:
var rid=window.ridddd;
獲取不到;
6 使用self.parent.window.x
B.js:
var rid=self.parent.window.ridddd;
可以訪問到;
一個html是一個window; 從a.jsp彈出b.jsp,b的父是a;b.jsp包含b.js;
現在要在b.js里獲取到a.jsp里的變量的值;
a.jsp:
window.rid1=infodata.SID;
b.js:
var rid=self.parent.window.rid1;
self代表自己,parent代表父;
7 前端調試時,修改了js文件并保存,刷新了網頁,調用的js文件仍然是未保存之前的js文件的解決方法
此種情況,需要清除瀏覽器緩存,再刷新網頁;
例如搜狗瀏覽器,選擇 工具-清除瀏覽記錄;清除如圖1的內容;
?
?
?
?
總結
以上是生活随笔為你收集整理的jsp对弹出jsp传值 和刷新网页后js仍然没有刷新的解决方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DES算法基本原理
- 下一篇: 认识windows消息机制和Spy++工