iframe中的视屏放大

首先看一下原iframe代码

<div id="shiping">
	<div id="shangzhuo">
	<div class="touming" onclick="shiping('kejianguang')">1</div>
	<iframe id="kejianguang" src="${pageContext.request.contextPath}/visibleLight.action"width="99%" height="100%" scrolling='no'></iframe></div>
	<div id="shangyou">
	<div class="touming" onclick="shiping('hongwai')">2</div>
	<iframe id="hongwai" src="${pageContext.request.contextPath}/iframe.action" width="99%" height="100%" scrolling='no'></iframe></div>
	<div id="xiazhuo">
	<div class="touming" onclick="shiping('qiuji1')">3</div>
	<iframe id="qiuji1" src="${pageContext.request.contextPath}/qiuji1.action"	width="99%" height="100%" scrolling='no'></iframe></div>
	<div id="xiayou">
	<div class="touming" onclick="shiping('qiuji2')">4</div>
	<iframe id="qiuji2"	src="${pageContext.request.contextPath}/qiuji2.action" width="99%" height="100%" scrolling='no'></iframe></div>
	</div>

大体就是将一个大div分割成四个小div,然后在小div中使用iframe引入视屏,现在呢,发现光看小视屏有些地方看的不清楚,肿木办捏,搞个大的啊,占满大半个个屏幕啊,但是海康威视这个视屏虽然自带双击放大,但是因为在右边还需要有个按键操控,所以就不能使用自带的东西,而且我对视屏这一块还不熟,所以我想直接在iframe里面加个点击事件,双击之后打开隐藏的div,这不就大小自己随意调了嘛,但这就有问题了,就是当iframe中加的是视屏的话,这个视屏层级会非常的高,咋都挡不住(设置z-index等),还能把上面的div捅出个窟窿,所以别说iframe的双击事件了,隐藏div都被挡住了,还玩蛇啊,然后我网上搜的方法基本就是:

<param name="wmode" value="opaque">

或者是这样的:

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000″ codebase=" width="600″ height="248″>
<param name="allowScriptAccess" value="sameDomain" />
<param name="allowFullScreen" value="false" />
<param name="movie" value="test.swf">
<param name="quality" value="high">
<param name="wmode" value="Opaque">
<embed src="test.swf" wmode="Opaque" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="600″ height="248″></embed>
</object>

重点是这两句哈

 <param name="wmode" value="Opaque">
  wmode="Opaque"

然后我也看的不是太懂,我只能自己慢慢试啦,然后我就在一个差不多的问题看到了一个方法,设置透明遮罩层,然后我就试了试,但是没成功,直到有一次,我不小心删了遮罩层div设置透明度的css样式后,嘿嘿,挡住了,可能这个div和iframe是同一个父div吧,他就不怕iframe的遮挡,但是又出问题了,遮罩div加背景色吧,可以挡住iframe,但是这是不是挡的太彻底了,好歹让我能看视屏吧,现在可没法透明了,但是不设置背景色吧,他就不顶事了(点不到,又被挡了,我也不知道啥情况),然后我机灵一动,嘿嘿,有办法了,加背景色,设置大小,定位到视屏右上角,加个序号,嘿嘿,我可真是个小机灵鬼,然后就是点击序号放大视屏,上css代码:

.touming{
	 position:absolute;
	 left:94%;
	 top:1.5%;
	 width:5%;
	 height:7%;
	 background-color: #EAEAEA;
	 text-align: center;
	 cursor: pointer;
}

就是iframe上面那个div,是他是他就是他,连层级都可以不用,然后打开视屏后我就发现视屏看不了,啥情况?
继续上网搜,哎,看到一个:

$('#'+xx).attr('src', $('#'+xx).attr('src'));

这是我改版过的,大概就是这样,获取src,再重新赋进去,嗯,网上小机灵鬼也挺多的嘛。然后更改代码:

//放大视屏
	    function shiping(xx){
	    	$("#caodaping").show();
	    	$("#kejianguang1").hide();
	    	$("#hongwai1").hide();
	    	$("#qiuji11").hide();
	    	$("#qiuji21").hide();
	    	$("#"+xx).show();
	    	$('#'+xx).attr('src', $('#'+xx).attr('src'));
	    }

前面第一个是最大的隐藏div,后四个是跟小iframe对应的大iframe,毕竟我们需要点谁显示谁嘛,先把四个都写上,点的时候都隐藏,在把点的显示出来,最后就是相当于刷新了,这还可以解决一个问题,就是视屏界面的大小问题,先看代码:

var a=$(window).height();
	var b=$(window).width();
	// 初始化插件参数及插入插件
	WebVideoCtrl.I_InitPlugin(b, a, {
        bWndFull: false,//是否支持单窗口双击全屏,默认支持 true:支持 false:不支持
        iWndowType: 2,
		cbSelWnd: function (xmlDoc) {
			g_iWndIndex = $(xmlDoc).find("SelectWnd").eq(0).text();
			var szInfo = "当前选择的窗口编号:" + g_iWndIndex;
			showCBInfo(szInfo);
		}
	});

最上面两句是我加的,保证视屏大小正好符合iframe的大小,第三句就是海康威视初始化视屏时设置大小啦,
但是这就会有一个问题,还记得那个隐藏div吗?他也是用这个的,但是加载的时候他是隐藏的,没有宽高,所以点开大图的时候里面的视屏没了,现在点开的时候重新刷新一下,就OK了。
然后在看看隐藏大div写的啥吧:

  <!-- 大视屏页面 -->
	<div id="caodaping">
	<div id="zuoda">
	<iframe id="kejianguang1" src="${pageContext.request.contextPath}/visibleLight.action"width="100%" height="100%" scrolling='no'></iframe>
	<iframe id="hongwai1" src="${pageContext.request.contextPath}/iframe.action" width="100%" height="100%" scrolling='no'></iframe>
	<iframe id="qiuji11" src="${pageContext.request.contextPath}/qiuji1.action"width="100%" height="100%" scrolling='no'></iframe>
	<iframe id="qiuji21" src="${pageContext.request.contextPath}/qiuji2.action"width="100%" height="100%" scrolling='no'></iframe>
	</div>
	<!-- 右侧操纵位 -->
	<div id="youxiao">
	<div id="yk" style="height: 50%;width: 100%;left: 0;">
       <div id="yuntai" style="height: 5%;background-color: #2978e3;border: 1px solid #0f438d;text-align:center;font-size: 14px;font-weight: bold;color:white">云台控制</div>
		<div id="zhong" style="height: 150px;width: 150px;position: absolute;">
		<!-- 放置云台底图 -->
		<div style="height: 150px;width: 150px;position: absolute;">
			<img src="${pageContext.request.contextPath}/images/yuntai_00.png" />
		</div>
		<!-- 云台的按钮 -->
		<div style="height: 150px;width: 150px;position: absolute;">
			<!-- 云台左转 -->
			<img id="Y_left" onmousedown="left_down();" onmouseup="left_big_down()" style="cursor:pointer;" src="${pageContext.request.contextPath}/images/yuntai/left.png" />
			<!-- 云台右转 -->
			<img id="Y_right" onmousedown="right_down();" onmouseup="right_big_down()"style="cursor:pointer;"src="${pageContext.request.contextPath}/images/yuntai/right.png" />
			<!-- 云台上转 -->
			<img id="Y_up" onmousedown="up_down();" onmouseup="up_big_down()" style="cursor:pointer;" 	src="${pageContext.request.contextPath}/images/yuntai/up.png" />
			<!-- 云台下转 -->
			<img id="Y_down" onmousedown="down_down();"onmouseup="down_big_down()" style="cursor:pointer;"src="${pageContext.request.contextPath}/images/yuntai/down.png" />
			<!-- 停止 -->
			<img id="Y_big" onmousedown="big_down2()" onmouseup="big()" style="cursor:pointer; width: 56px; "  src="${pageContext.request.contextPath}/images/yuntai/tp2.png"/>
		</div>
		</div>
	</div>
	</div>
	<!-- 返回按钮 -->
	<a id="hui" href="javascript:void(0)" style="position: absolute; left: 99%;top: 3px; z-index: 2000;" onclick="fanhui()">
	<img id="fanhui" src="${pageContext.request.contextPath}/images/min.png"></a>
	</div>

我加了个返回的小图标,毕竟不能放大没有返回嘛,还有就是我前面说到的,页面右侧的操控按钮啦,最上面就是跟之前对应的四个大iframe啦,点谁谁出来,至于隐藏大div为啥最后可以盖住四个小视屏,其实它没有这么厉害,但是它儿子不是有一个包含iframe嘛,一人得道兄弟升天,但是对它老爹就是没效果,我就给他多加了个兄弟,保证把页面全盖住。
好啦,大概就这样了,时间不早了,该下班了,如有不会,欢迎指教,多好是不是。
最后在加俩效果图:
小视屏:
iframe中的视屏放大
接下来看看大视屏:
iframe中的视屏放大