62,074
社区成员
发帖
与我相关
我的任务
分享
<iframe id="frame1"></iframe>
<iframe id="frame2"></iframe>
<iframe id="frame3"></iframe>
<iframe id="frame4"></iframe>
protected string SKID {
get { return Request.QueryString["SKID"]; }
}
从菜单栏点击任何选项后 转到center.aspx页面
因为已经知道有4个frame,所以把frame的状态都存入cookie
每次进入center.aspx页面时就从cookie里检查每个frame的状态
楼主把这段代码加载center.aspx里面
var Cookie = {
setCookie: function(cookieName, cookieValue, cookieOptions) {
var path = cookieOptions.path ? "; path=" + (cookieOptions.path) + "" : "; path=/";
var domain = cookieOptions.domain ? "; domain=" + (cookieOptions.domain) + "" : "";
var secure = cookieOptions.secure ? "; secure" : "";
var date = new Date();
var expiresTime = 1000 * 60;
date.setTime(date.getTime() + (cookieOptions.expires ? expiresTime * cookieOptions.expires : expiresTime * 20)); //如果不設置cookie過期時間 默認為20分鐘
var expires = "; expires=" + date.toGMTString();
document.cookie = "" + cookieName + "=" + encodeURIComponent(cookieValue) + "" + expires + "" + path + "" + domain + "" + secure + "";
},
getCookie: function(cookieName) {
if (document.cookie != "") {
var str, cookies = document.cookie.split(";");
for (var i = 0; i < cookies.length; i++) {
str = cookies[i].split("=");
if (str[0] == cookieName)
return decodeURIComponent(str[1]);
}
}
return null;
},
removeCookie: function(cookieName) {
if (document.cookie != "") {
var date = new Date();
date.setTime(date.getTime() - 100000);
var expires = "; expires=" + date.toGMTString();
document.cookie = "" + cookieName + "=" + expires + "";
}
}
}
function ConvertObjectToString(obj) {
var arr = [], ret = "";
for (var o in obj) {
ret = "\"" + o + "\":";
var arr2 = [];
for (var value in obj[o]) {
arr2.push("\"" + value + "\":\"" + obj[o][value] + "\"");
}
ret += "{" + arr2.join(",") + "}";
arr.push(ret);
}
return "{" + arr.join(",") + "}";
}
function ConvertStringToObject(str) {
var fun = new Function("return" + str + "");
return fun();
}
function ResetFrames(frm, url) {
var index = 0;
for (var s in frm) {
if (frm[s].IsLoad == "false") {
index++;
}
}
if (index == 4) {//如果所有的frame的IsLoad=false表明 该论循环结束 就是4个frame都加载过了 现在重新设置IsLoad=true 以便再次进入循环
for (var a in frm) {
frm[a].IsLoad = "true"
}
}
for (var f in frm) {
if (frm[f].IsLoad == "true") {
frm[f].LoadCount = parseInt(frm[f].LoadCount) + 1; //记录frame加载的次数
frm[f].SRC = url;
frm[f].IsLoad = "false";//设置frame状态
document.getElementById(f).src = url;
break;
}
}
Cookie.setCookie("Frames", ConvertObjectToString(frm), { expires: 60 * 24 }); //保存
}
window.onload = function() {
var frm = Cookie.getCookie("Frames");
if (frm == null) {/*SRC:Frame指向的url地址;IsLoad:加载状态;LoadCount:加载次数*/
frm = "{'frame1': {'SRC': '','IsLoad':'false','LoadCount':'0'}, 'frame2': { 'SRC': '','IsLoad':'false' ,'LoadCount':'0'}, 'frame3': { 'SRC': '','IsLoad':'false','LoadCount':'0' }, 'frame4': { 'SRC': '','IsLoad':'false','LoadCount':'0'} }";
Cookie.setCookie("Frames", frm, { expires: 60 * 24 });
}
frm = ConvertStringToObject(frm);
var url = "center.aspx?SKID=<%=SKID %>"; /*楼主要再新建个页面center2.aspx来显示数据 center.aspx只是作为4个frame的载体 */
var count = 0;
for (var f in frm) {
if (frm[f].IsLoad == "false" && parseInt(frm[f].LoadCount) == 0) {//如果当前frame为初次加载
frm[f].SRC = url;
frm[f].IsLoad = "true";//设置frame的加载状态
Cookie.setCookie("Frames", ConvertObjectToString(frm), { expires: 60 * 24 }); //保存
document.getElementById(f).src = url;
break; //保证一次只有一个frame加载画面
}
else {
count++; //计算已经加载过的Frame数量
if (count == 4) {//如果所有的frame都已经加载过
ResetFrames(frm, url);
}
document.getElementById(f).src = frm[f].SRC;
}
}
}
<script type="text/javascript">
var index = 0;
function showVedio(vedioId) {
window.iframeRight.frames[index].location.href="Default3.aspx?id=" + vedioId;
if (index == 3) {
index = 0;
}
else {
index++;
}
}
</script>
<table style="border-style: double; border-width: 1px; border-color: inherit; width:700px; height:600px; ">
<tr>
<td style="width:200px;text-align:center;vertical-align:top;">
<a href="javascript:;" onclick="showVedio(1);">水库1</a><br /><br />
<a href="javascript:;" onclick="showVedio(2);">水库2</a><br /><br />
<a href="javascript:;" onclick="showVedio(3);">水库3</a><br /><br />
<a href="javascript:;" onclick="showVedio(4);">水库4</a><br /><br />
<a href="javascript:;" onclick="showVedio(5);">水库5</a><br /><br />
</td>
<td style="width:500px;height:600px;">
<iframe id="iframeRight" name="iframeRight" src="Default2.aspx" scrolling="no" frameborder="1" height="100%" width="100%">
</iframe>
</td>
</tr>
</table>
<table style="width: 400px; height: 400px;">
<tr>
<td style="width: 200px; height: 200px;">
<iframe id="if_left_top" scrolling="no" frameborder="1" height="100%" width="100%">
</iframe>
</td>
<td style="width: 200px; height: 200px;">
<iframe id="if_right_top" scrolling="no" frameborder="1" height="100%" width="100%">
</iframe>
</td>
</tr>
<tr>
<td style="width: 200px; height: 200px;">
<iframe id="if_left_bottom" scrolling="no" frameborder="1" height="100%" width="100%">
</iframe>
</td>
<td style="width: 200px; height: 200px;">
<iframe id="if_right_bottom" scrolling="no" frameborder="1" height="100%" width="100%">
</iframe>
</td>
</tr>
</table>
<div class="top">
<div class="a1">
<div class="b1">
<iframe id="if_left_top" scrolling="no" frameborder="1" height="100%" src='<%=url1%>'
width="100%"></iframe>
</div>
<div class="b2">
<iframe id="if_right_top" scrolling="no" frameborder="1" height="100%" src='<%=url2%>'
width="100%"></iframe>
</div>
<div class="b3">
<iframe id="if_left_bottom" scrolling="no" frameborder="1" height="100%" src='<%=url3%>'
width="100%"></iframe>
</div>
<div class="b4">
<iframe id="if_right_bottom" scrolling="no" frameborder="1" height="100%" src='<%=url4%>'
width="100%"></iframe>
</div>
</div>
public int i = 0;//全局控制显示视频的数量
public string url1 = string.Empty;
public string url2 = string.Empty;
public string url3 = string.Empty;
public string url4 = string.Empty;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//接受SKID,若是第一次加载的话,不显示任何水库信息
try
{
skid = Request.QueryString["SKID"];
if(!string.IsNullOrEmpty(skid))
{
Session["index"] = (i++).ToString();
if(int.Parse(Session["index"].ToString())%4==0)
{
//在第一个iframe里显示视频
url1 = getUrl(skid);
}
else if (int.Parse(Session["index"].ToString()) % 4 == 1)
{
url2 = getUrl2(skid);
}
else if (int.Parse(Session["index"].ToString()) % 4 == 2)
{
url3 = getUrl3(skid);
}
else if (int.Parse(Session["index"].ToString()) % 4 == 3)
{
url4 = getUrl4(skid);
}
}
}
catch (Exception)
{
skid = "";
url1 = "";
url2 = "";
url3 = "";
url4 = "";
}
}
}