|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
大家可以自己去看一看.可以说看得想呕吐.以前有次下了个动网来看.里面连基本内置函数的保护措施(函数没防御性)都没有.难怪经常补这个补那个了.可能现在.NET版会好点吧select|下拉|页面 下拉框,即html的SELECT元素,.net设计时的DropDownList,是html中的windowed element,特别ie6以后,几近是独一的windowed element(还有popup等大批少少用的的)。
通俗的元素,textbox, div, table……这些,属于windowless element,它们之间相互粉饰的情形由z-index决意,在它们之上,是SELECT这些windowed element。所以普通情形下div、table等不克不及粉饰select。
这个成绩普遍存在于各类弹出式控件的利用当中,好比日历控件等。
假如要显示div,之前的做法是,静态的,在显示的时分,让div区域的select不成见,div消逝的时分,再恢复这些select元素。这类做法对照奇异,由于它严厉上并非“粉饰”了select,而是,让她全部消逝了,假如calendar弹出元素只是应当粉饰select元素的一局部,但select却全部不见,用户或许会感觉奇异;做起来也费事,要用js一一判别各select的地位。
ie5.5以后,有一个新的小技能,称之为“iframe shim”(iframe加塞:p),可以真实的“粉饰”select元素。
它使用了一种特别的元素:iframe。在ie5.5之前,iframe也是windowed element,但从5.5入手下手,iframe就是通俗的windowless element了,可是,固然是windowless element,iframe却可以盖住select。这类做法的道理就是:放一个iframe与你要显示的器材(好比说一个div)一样巨细、地位,并设置z-index使得iframe在此DIV之下;如许,iframe粉饰了select,同时,iframe又在要显示的div的上面,div就显露来了。
限制:仅合用于ie5.5及今后版本。
参考文章链接:
http://dotnetjunkies.com/WebLog/jking/archive/2003/07/21/488.aspx
示例法式代码:
//html.select.hack.iframe shim.htm
<html>
<head>
<script>
function DivSetVisible(state)
{
var DivRef = document.getElementById('PopupDiv');
var IfrRef = document.getElementById('DivShim');
if(state)
{
DivRef.style.display = "block";
IfrRef.style.width = DivRef.offsetWidth;
IfrRef.style.height = DivRef.offsetHeight;
IfrRef.style.top = DivRef.style.top;
IfrRef.style.left = DivRef.style.left;
IfrRef.style.zIndex = DivRef.style.zIndex - 1;
IfrRef.style.display = "block";
}
else
{
DivRef.style.display = "none";
IfrRef.style.display = "none";
}
}
</script>
</head>
<body background="http://www.orkut.com/img/i_blau2.gif">
<form>
<select>
<option>A Select Box is Born ....</option>
</select>
</form>
<div
id="PopupDiv"
style="position:absolute;font:italic normal bolder 12pt Arial; top:25px; left:50px; padding:4px; display:none; color:#ffff00; z-index:100">
.... and a DIV can cover it up<br>through the help of an IFRAME.
</div>
<iframe
id="DivShim"
src="javascript:false;"
scrolling="no"
frameborder="0"
style="position:absolute; top:0px; left:0px; display:none;filter=progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0);">
</iframe>
<br>
<br>
<a href="#" onclick="DivSetVisible(true)">Click to show DIV.</a>
<br>
<br>
<a href="#" onclick="DivSetVisible(false)">Click to hide DIV.</a>
</body>
</html>
</p> 专业性的服务。有的ASP商提供垂直型的应用服务,针对某一特定行业提供应用服务。 |
|