实现屏蔽浏览器右上角“最小化”“最大化”“关闭”键的javascript代码:
<script language=javascript>
function window.onbeforeunload()
{
if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey)
{
window.event.returnvalue = ""
}
}
</script>
注:在body标签里加上onbeforeunload="javascript:return false"(使不能关闭窗口)
<asp:DropDownList ID="DropDownList1" runat="server" onselectedindexchanged="DropDownList1_SelectedIndexChanged" AutoPostBack="true"></asp:DropDownList>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="更新" onclick="Button1_Click" />
简单的回答是:不能
从用户角度讲,这是他们应有的权利,它属于操作系统中应用软件的一部分,并不属于页面,你没有办法禁止用户对窗口进行缩放。
有一个办法可以保证页面总是保持在你想要的尺寸:resizeTo
IE 和 Safari 暂时还都支持在当前页面使用 resizeTo,其它浏览器都已经改为只支持在 window.open 打开的页面上使用。所以要兼容全部浏览器,你的页面必须使用 window.open 打开,并且在部分浏览器中要设置 width 和 height 属性(否则窗口会在 TAB 中打开)。
index.html
<script type="text/javascript">/* 或者在适当的情况使用 a onclick 调用 window.open */
window.open("w.html", "", "top=0,left=0,toolbar=1,menubar=1,"
+ "width=" + screen.width + ",height=" + screen.height)
</script>
main.html
<script type="text/javascript">window.onresize = function() {
var window_width = window.innerWidth
|| document.documentElement.clientWidth
|| document.body.clientWidth
if(window_width <1000) {
// 部分浏览器需要延迟
setTimeout(function() {
// 窗口最大化
window.resizeTo(screen.width, screen.height)
// 窗口移动至 top=0, left=0
window.moveTo(0, 0)
}, 100)
}
}
</script>
注意即使在 window.open 和 window.resizeTo 中使用了 screen.width 和 screen.height,但打开的窗口并不是我们平时看到的最大化,窗口离屏幕四周会有一定距离。
使用这种方法最大的问题就是会令访问者产生反感,因为你强迫用户使用指定尺寸的窗口大小。但这也是现在唯一的方法。
所以个人还是建议你当窗口过小的时候,mask 掉整个页面,给用户一个提示,例如:您的浏览器窗口尺寸过小,为了正常访问此页面,请调整窗口尺寸。