📄 javascript.txt
字号:
showModalDialog
window.dialogArguments 父窗口
asp.net错误提示:此页的视图状态无效,可能已损坏
刚才在项目www.aihuifu.com开发中遇到一个问题,之前从来没有遇到过,可能是.net项目的开发经验还不够丰富吧,以前没有把一个页面的表单提交给另一个页面去处理(偶在asp里经常这样干啊,呵呵),出现了错误提示:“此页的视图状态无效,可能已损坏”。于是上网搜索找到了如下的解决办法:
在提交到的页面顶部加上<%@ Page EnableViewStateMac=false%>就可以了!
一个流行的弹出层的效果!
不过还是有些问题:
1、mask层出现后,ctrl+a还是可以全选,显得mask效果不够完善。
2、其次,mask层的计算浏览器的scrollWidth和scrollHeight还是有些问题的。
比如,在一个CSS+DIV的布局中,
<div style="margin: 0px auto">
<div style="float: left; width: 100px">左边</div>
<div style="float: reft; width: 100px">右边</div>
</div>
这种模式下的网页,某些浏览器无法通过scrollHeight来获得实际的页面高度,这种bug可以在QQ的那个争论的页面看到,mask没有覆盖全页。
解决办法可通过Dom获取页面实际高度,或者遍历每个float的层的实际高度总和。等等。。。。。
<script>
var docEle = function() {
return document.getElementById(arguments[0]) || false;
}
function openNewDiv(_id) {
var m = "mask";
if (docEle(_id)) document.removeChild(docEle(_id));
if (docEle(m)) document.removeChild(docEle(m));
// 新激活图层
var newDiv = document.createElement("div");
newDiv.id = _id;
newDiv.style.position = "absolute";
newDiv.style.zIndex = "9999";
newDiv.style.width = "200px";
newDiv.style.height = "300px";
newDiv.style.top = "100px";
newDiv.style.left = (parseInt(document.body.scrollWidth) - 300) / 2 + "px"; // 屏幕居中
newDiv.style.background = "#EFEFEF";
newDiv.style.border = "1px solid #860001";
newDiv.style.padding = "5px";
newDiv.innerHTML = "新激活图层内容";
document.body.appendChild(newDiv);
// mask图层
var newMask = document.createElement("div");
newMask.id = m;
newMask.style.position = "absolute";
newMask.style.zIndex = "1";
newMask.style.width = document.body.scrollWidth + "px";
newMask.style.height = document.body.scrollHeight + "px";
newMask.style.top = "0px";
newMask.style.left = "0px";
newMask.style.background = "#000";
newMask.style.filter = "alpha(opacity=40)";
newMask.style.opacity = "0.40";
document.body.appendChild(newMask);
// 关闭mask和新图层
var newA = document.createElement("a");
newA.href = "#";
newA.innerHTML = "关闭激活层";
newA.onclick = function() {
document.body.removeChild(docEle(_id));
document.body.removeChild(docEle(m));
return false;
}
newDiv.appendChild(newA);
}
</script>
<body>
<a href="#" onclick="openNewDiv('newDiv');return false;">激活新层</a>
<p>网页内容网页内容网页内容</p>
<p>网页内容网页内容网页内容</p>
</body>
//////////////////////////////////////////////////////////////////////////////////////////////////////////
//验证给定的日期是否合法 ,参数格式要求:yyyy-mm-dd[ hh:mi:ss] 可以根据情况更改正则表达式
function isDate(oDateTime)
{
//对日期格式进行验证 要求为2000-2099年 格式为 yyyy-mm-dd[ hh:mi:ss] 并且可以正常转换成正确的日期
var pat_hd=/^(20\d{2}-((0[1-9]{1})|(1[0-2]{1}))-((0[1-9]{1})|([1-2]{1}[0-9]{1})|(3[0-1]{1}))){1}(\s\d{2}:\d{2}:\d{2})?$/;
try{
if(!pat_hd.test(oDateTime)) throw "日期非法!";
var arr_dt=oDateTime.split(" ");
if(arr_dt[0]=='') throw "日期非法!";
var oDate=arr_dt[0];
var arr_hd=oDate.split("-");
var dateTmp;
dateTmp= new Date(arr_hd[0],parseFloat(arr_hd[1])-1,parseFloat(arr_hd[2]));
if(dateTmp.getFullYear()!=parseFloat(arr_hd[0]) || dateTmp.getMonth()!=parseFloat(arr_hd[1]) -1 || dateTmp.getDate()!=parseFloat(arr_hd[2])) throw "日期非法!";
if(arr_dt[1] && arr_dt[1]!='')
{
var oTime=arr_dt[1];
var arr_ht=oTime.split(":");
dateTmp.setHours(arr_ht[0],arr_ht[1],arr_ht[2]);
if(dateTmp.getHours()!=parseFloat(arr_ht[0]) || dateTmp.getMinutes()!=parseFloat(arr_ht[1]) || dateTmp.getSeconds()!=parseFloat(arr_ht[2])) throw "日期非法!";
}
}
catch(ex)
{
if(ex.description)
{return false;}
else
{return false;}
}
return true;
}
调用:
------------------
alert(isDate("2004-12-12 23:34:23"));
alert(isDate("2004-12-12"));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -